我尝试在我的代码中使用 RxSwift 并有一个问题:
-
我有一个具有不同属性的
Settings
类(例如staticValue
(:class DeviceSettings: NSObject { var staticValue = Variable<Int>(0) }
-
我有一个带有UITextField的UI,它应该与属性双向连接,工作正常:
settings.staticValue.asObservable() .map({ String($0) }) .bindTo(staticValueField.rx.text) .addDisposableTo(disposeBag) staticValueField.rx.controlEvent([.editingDidEnd]).asObservable() .map({ Int(self.staticValueField.text!)! }) // Always Int .subscribe(onNext: { self.settings.staticValue.value = $0 }).addDisposableTo(disposeBag)
但实际Settings
对象将通过网络请求加载,并且可以在 VC 生命周期内多次重新加载。所以:
- 我应该如何存储我的设置对象?像往常一样可变或
Variable<Settings>
?
还是!
? - 我的双向绑定是否正确?
- 我需要按什么顺序加载数据并调用绑定逻辑以启用绑定并立即设置起始值?
- 像往常一样存储变量。所有可观察的属性都在内部并存储为
Variable<T>
- 似乎绑定是正确的,现在一切正常
-
- 我执行了网络请求
- 将接收的对象存储在我的设置对象变量中。如果我需要刷新数据,我将更新对象属性值,但不会更新整个对象
- 向值添加
.startWith( settings.staticValue.value )
->初始值的 tf 绑定
附言如果我犯了什么错误,请纠正我