読者です 読者をやめる 読者になる 読者になる

Pebble's Diary

プログラマーの作業メモ

Rx メモ

RxSwiftとRxCocoaの区別がわかりづらいのでメモ。
RxCocoaはUIKit,NSFoundationなどに特化したiOS/macOS環境特有の機能。

RxSwift

  • combileLatest

仕様:複数の変数のいずれかが変更された場合にそれぞれの最新の値をまとめて受け取る
使い道:2つのUITextFieldに入力した値の合計をUILabelに表示する場合など

extension Observable {
    public static func combineLatest<O1: ObservableType, O2: ObservableType>
        (_ source1: O1, _ source2: O2, resultSelector: @escaping (O1.E, O2.E) throws -> E)
            -> Observable<E>
}
  • Variable

仕様:BehaviorSubject のラッパー
使い道:

public final class Variable<Element>

RxCocoa

  • orEmpty

仕様:String?型をString型に変換する。nilの場合は"“に変換される。
使い道:UILabelのタイトルなどString型のプロパティに設定する場合など

public protocol ControlPropertyType : ObservableType, ObserverType {
    func asControlProperty() -> ControlProperty<E>
}

extension ControlPropertyType where E == String? {
    public var orEmpty: ControlProperty<String>
}
  • bindTo

仕様:
使い道:

extension ObservableType {    
    public func bindTo<O: ObserverType>(_ observer: O) -> Disposable where O.E == E
}
  • drive

仕様:
使い道:

extension SharedSequenceConvertibleType where SharingStrategy == DriverSharingStrategy {
    public func drive<O: ObserverType>(_ observer: O) -> Disposable where O.E == E
}