RxSwift - 类属性的绑定

Posted

技术标签:

【中文标题】RxSwift - 类属性的绑定【英文标题】:RxSwift - Class property's binding 【发布时间】:2017-04-10 05:46:00 【问题描述】:

我有一个关于绑定的问题: 我有一个自定义类的对象数组:Array.每个对象都可以在 bg 中更新(更改他的属性值)。 我还分离了控制器,它从列表中获取并存储一个对象作为变量并可以更新它(对象仍然相同,所以在列表中它也会被更新)

有没有什么办法可以绑定所有object.property -> UILabels on Controller,当属性改变时自动调用标签更新?

【问题讨论】:

【参考方案1】:

当然,有多种方法可以做到这一点,但根据你的描述,我会使用某种主题(因为你说背景会有变化,所以你可能需要 hot observable )....例如变量或发布主题。这样你就可以装箱了

let myArrayStream: Variable<[MyObject]> = Variable([])

您可以将此变量作为依赖项传递到您想要的任何地方,一方面您可以订阅它,另一方面您可以更新它的值。

【讨论】:

如果我需要从数组中订阅一个对象,我应该使用Variable&lt;MyObject&gt;?从数组中传递一个元素时,如下所示:vcProperty: Variable&lt;MyObject&gt; = array.value[index]?因此,如果我更改 vcProperty.prop,两个订阅者(针对 vcProperty 和数组)都会收到有关此事件的通知,对吗?

以上是关于RxSwift - 类属性的绑定的主要内容,如果未能解决你的问题,请参考以下文章

使用 RxSwift 将多个 UITextField 绑定到类道具

RxSwift 从一个创建多个 Observable

RxSwift:当类具有 disposeBag 属性时,始终使用 [unowned self] 是不是安全?

RxSwift var-outlet 绑定组织

RxSwift:多次连接到 Connectable Observable

IOS RxSwift中UISearch栏文本和视图模型属性之间的两种方式绑定