如何在RxSwift中观察数组属性的变化

如何在RxSwift中观察数组属性的变化,第1张

概述这是我的班级: class ViewController: UIViewController { var myArray : NSArray!} 我想每次myArray指向一个新数组时触发一个事件,如下所示: self.myArray = ["a"]self.myArray = ["b"] 我尝试过rx_observe但失败了,这是我的代码: self.rx_observe(NSArr 这是我的班级:
class VIEwController: UIVIEwController {   var myArray : NSArray!}

我想每次myArray指向一个新数组时触发一个事件,如下所示:

self.myArray = ["a"]self.myArray = ["b"]

我尝试过rx_observe但失败了,这是我的代码:

self.rx_observe(NSArray.self,"myArray").subscribeNext { (array) -> VoID in   print(array)}

它只是第一次发射,有什么问题?

大多数情况下,如果您控制了支持变量,则首选使用变量来使用rx_observe.
class VIEwController: UIVIEwController {   var myArray : Variable<NSArray>!}

你第一次使用myArray时,你会这样做

myArray = Variable(["a"])

然后,如果你想改变它的价值

myArray.value = ["b"]

您可以使用,轻松观察其变化

myArray.asObservable().subscribeNext { value in  // ...}

如果你真的想使用rx_observe(可能是因为变量在程序的其他地方使用而你不想更改视图控制器的API),你需要将myArray声明为动态(另一个要求是托管类)是NSObject的孩子,这里UIVIEwController满足这个要求).默认情况下,未在swift中实现KVO,并且使用dynamic确保使用objective-c运行时完成访问,其中处理KVO事件.

class VIEwController: UIVIEwController {  dynamic var myArray: NSArray!}

有关此文档的文档可以在here找到

总结

以上是内存溢出为你收集整理的如何在RxSwift中观察数组属性的变化全部内容,希望文章能够帮你解决如何在RxSwift中观察数组属性的变化所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1031208.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-23
下一篇2022-05-23

发表评论

登录后才能评论

评论列表(0条)

    保存