2015-10-16 81 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子類的接口。您的答案清理了很多東西。 –

相關問題