gpt4 book ai didi

ios - RxSwift var-outlet 绑定(bind)组织

转载 作者:行者123 更新时间:2023-11-30 12:27:14 26 4
gpt4 key购买 nike

我尝试在代码中使用 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 生命周期中可以多次重新加载。所以:

  1. 我应该如何存储我的设置对象?像往常一样变量或作为 Variable<Settings>?!
  2. 我的双向绑定(bind)正确吗?
  3. 我需要按什么顺序加载数据并调用绑定(bind)逻辑以启用绑定(bind)并立即设置起始值?

最佳答案

  1. 照常存储变量。所有可观察的属性都在里面并存储为 Variable<T>
  2. 看来绑定(bind)是正确的,目前一切正常
    • 我执行了网络请求
    • 将接收到的对象存储在我的设置对象变量中。如果我需要刷新数据,我将更新对象属性值,但不是完整对象
    • 已添加.startWith( settings.staticValue.value ) to value -> tf 绑定(bind)初始值

附注如果我犯了一些错误,请纠正我

关于ios - RxSwift var-outlet 绑定(bind)组织,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44041467/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com