如何在RxSwift中观察数组属性的变化
发布时间:2020-12-14 05:25:38 所属栏目:百科 来源:网络整理
导读:这是我的班级: 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找到 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |