Rxの学習過程で学んだことを後からでも見れるようにメモしていきます
本記事はこちらRxSwiftを参考にしています
CombineLatestとは
Observable
シーケンスのいずれかが要素を生成するたびに、指定されたObservable
シーケンスを、1つのタプルのObservable
シーケンスにマージする。
使用例
各TextField
に入力した値をリアルタイムで合計し、ラベルに表示する。
といった機能を作っていきます。
数値入力用のTextField
を3つと合計結果表示用のLabel
をひとつ用意しいます。
Observable.combineLatest(textField1.rx.text.orEmpty, textField2.rx.text.orEmpty, textField3.rx.text.orEmpty) { textValue1, textValue2, textValue3 -> Int in
return (Int(textValue1) ?? 0) + (Int(textValue2) ?? 0) + (Int(textValue3) ?? 0)
}
.map { $0.description }
.bind(to: label.rx.text)
.disposed(by: disposeBag)