let textField: UITextField = ...
let nameLabel: UILabel = ...
let nameSizeLabel: UILabel = ...
let state: Driver<String?> = textField.rx.text.asDriver()
let observer = nameLabel.rx.text
state.drive(observer)
// ... 假设以下代码是在用户输入姓名后运行
let newObserver = nameSizeLabel.rx.text
state.map { $0?.count.description }.drive(newObserver)
这个例子只是将用户输入的姓名绑定到对应的标签上。当用户输入姓名后,我们创建了一个新的观察者,用于订阅姓名的字数。那么问题来了,订阅时,展示字数的标签会立即更新吗?
let button: UIButton = ...
let showAlert: (String) -> Void = ...
let event: Driver<Void> = button.rx.tap.asDriver()
let observer: () -> Void = { showAlert("弹出提示框1") }
event.drive(onNext: observer)
// ... 假设以下代码是在用户点击 button 后运行
let newObserver: () -> Void = { showAlert("弹出提示框2") }
event.drive(onNext: newObserver)
...
let event: Signal<Void> = button.rx.tap.asSignal()
let observer: () -> Void = { showAlert("弹出提示框1") }
event.emit(onNext: observer)
// ... 假设以下代码是在用户点击 button 后运行
let newObserver: () -> Void = { showAlert("弹出提示框2") }
event.emit(onNext: newObserver)