RxSwift:双向绑定
我使用了官方的双向绑定解决scheme
func <-> <T>(property: ControlProperty<T>, variable: Variable<T>) -> Disposable{ let bindToUIDisposable = variable.asObservable() .bindTo(property) let bindToVariable = property .subscribe(onNext: { n in variable.value = n }, onCompleted: { bindToUIDisposable.dispose() }) return Disposables.create(bindToUIDisposable, bindToVariable) }
用法: (textField.rx.text <-> object.property).addDisposableTo(disposeBag)
属性定义: var property = Variable<String?>(nil)
- 在onNext方法中,所有ok和
variable
改变了它的值,但是我的object.property
没有改变。 - 有没有办法将可变的当前值设置为< – >方法内的ControlProperty,bcs我需要设置初始值,在订阅开始之前?
我的错。 绑定后,我用另一个实例replace了对象
此代码工作正常,控制属性从variables接收初始值