将 ReactiveCocoa 3 和 4 与核心数据一起使用
Use ReactiveCocoa 3 and 4 with Core Data
我是 ReactiveCocoa 的新手,想用它来替代 Swift 2 项目中某些 NSManagedObject
上的 KVO。
我在网上找到的大多数示例都使用 RACObserve()
,它已在 RAC 3 中删除(?)。Changelog 声明,新版本不再强调 KVO,我应该移动至 PropertyType
s.
有什么方法可以让我在现有的 NSManagedObject
上使用 Reactive Cocoa 3 和 4,其方式与使用 RACObserve()
的方式类似?
ReactiveCocoa 3.0 documentation指向DynamicProperty
The DynamicProperty type can be used to bridge to Objective-C APIs
that require Key-Value Coding (KVC) or Key-Value Observing (KVO), like
NSOperation. Note that most AppKit and UIKit properties do not support
KVO, so their changes should be observed through other mechanisms.
MutableProperty should be preferred over dynamic properties whenever
possible!
因此您需要创建一个 DynamicProperty 对象并使用它的 signalProducer。像这样:
DynamicProperty(object: managedObject, keyPath: "attribute").producer
P. S.ReactiveCocoa 源码真棒inline documentation。查看它以获取更多信息。
我是 ReactiveCocoa 的新手,想用它来替代 Swift 2 项目中某些 NSManagedObject
上的 KVO。
我在网上找到的大多数示例都使用 RACObserve()
,它已在 RAC 3 中删除(?)。Changelog 声明,新版本不再强调 KVO,我应该移动至 PropertyType
s.
有什么方法可以让我在现有的 NSManagedObject
上使用 Reactive Cocoa 3 和 4,其方式与使用 RACObserve()
的方式类似?
ReactiveCocoa 3.0 documentation指向DynamicProperty
The DynamicProperty type can be used to bridge to Objective-C APIs that require Key-Value Coding (KVC) or Key-Value Observing (KVO), like NSOperation. Note that most AppKit and UIKit properties do not support KVO, so their changes should be observed through other mechanisms. MutableProperty should be preferred over dynamic properties whenever possible!
因此您需要创建一个 DynamicProperty 对象并使用它的 signalProducer。像这样:
DynamicProperty(object: managedObject, keyPath: "attribute").producer
P. S.ReactiveCocoa 源码真棒inline documentation。查看它以获取更多信息。