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 }