2015-10-16 47 views
3

我是ReactiveCocoa的新手,想在Swift 2项目中使用它作为KVO的某些NSManagedObject的替代品。将ReactiveCocoa 3和4与Core Data一起使用

大多数时间我发现在RAC 3. Changelog美国在线使用RACObserve(),这已被删除(?)的例子,新的版本去emphesize志愿,我应该搬到PropertyType秒。

有没有什么办法可以像RACObserve()那样使用Reactive Cocoa 3和4在现有的NSManagedObject上?

+0

RACObserve是一个宏,所以你不能使用它。但是你可以在Swift中使用底层方法rac_valuesForKeyPath。 – Cosyn

回答

5

ReactiveCocoa 3.0 documentation指向DynamicProperty

的DynamicProperty类型可用于桥接到目标C的API 需要键 - 值编码(KVC)或键 - 值观察(KVO),如 的NSOperation 。请注意,大多数AppKit和UIKit属性不支持 KVO,因此应通过其他机制观察其更改。 只要 可能,MutableProperty应优先于动态属性!

所以你需要制作一个DynamicProperty对象并使用它的signalProducer。是这样的:

DynamicProperty(object: managedObject, keyPath: "attribute").producer

P. S. ReactiveCocoa源代码有真棒inline documentation。结账了解更多信息。

+0

感谢您的使用示例!我确实找到了DynamicProperty的建议,但误解了如何使用它。我认为这是一个类似'MutableProperty'的包装类型,但是与KVC和KVO兼容,并且使用它需要我更改NSManagedObject子类的接口。您的答案清理了很多东西。 –

相关问题