【问题标题】:Use ReactiveCocoa 3 and 4 with Core Data将 ReactiveCocoa 3 和 4 与 Core Data 一起使用
【发布时间】:2016-01-15 07:10:42
【问题描述】:

我是 ReactiveCocoa 的新手,想在 Swift 2 项目中的某些 NSManagedObjects 上用它来替代 KVO。

我在网上找到的大多数示例都使用RACObserve(),它已在 RAC 3 中被删除(?)。Changelog 指出,新版本不再强调 KVO,我应该移至PropertyTypes。

有什么方法可以让我在现有的NSManagedObject 上使用 Reactive Cocoa 3 和 4,就像使用 RACObserve() 一样?

【问题讨论】:

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

标签: ios core-data swift2 reactive-cocoa reactive-cocoa-3


【解决方案1】:

ReactiveCocoa 3.0 documentation 指向DynamicProperty

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

所以你需要创建一个 DynamicProperty 对象并使用它的 signalProducer。像这样的:

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

P。 S. ReactiveCocoa 源代码有很棒的inline documentation。查看它以获取更多信息。

【讨论】:

  • 感谢使用示例!我确实找到了 DynamicProperty 的推荐,但误解了如何使用它。我认为它是像 MutableProperty 这样的包装器类型,但符合 KVC 和 KVO 要求,使用它需要我更改 NSManagedObject 子类的接口。你的回答清楚了很多事情。
猜你喜欢
  • 2015-12-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-12
  • 1970-01-01
相关资源
最近更新 更多