RxSwift: ligação em dois sentidos
eu useisolução oficial de ligação bidirecional
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)
}
Uso:(textField.rx.text <-> object.property).addDisposableTo(disposeBag)
Definição da propriedade:var property = Variable<String?>(nil)
variable
mudou seu valor, mas meuobject.property
não mudou.Existe alguma maneira de definir o valor atual da variável em ControlProperty dentro do método <->, bcs Eu preciso definir o valor inicial, antes do início da assinatura?