Observable & Observer 既是可监听序列也是观察者
在我们所遇到的事物中,有一部分非常特别。它们既是可监听序列也是观察者。
例如: textField 的当前文本。它可以看成是由用户输入,而产生的一个文本序列。也可以是由外部文本序列,来控制当前显示内容的观察者:
// 作为可监听序列 let observable = textField.rx.text observable.subscribe(onNext: { text in show(text: text) })
// 作为观察者 let observer = textField.rx.text let text: Observable<String?> = ... text.bind(to: observer)
有许多UI 控件都存在这种特性,例如: switch 的开关状态, segmentedControl 的选中索引号,datePicker 的选中日期等等。