Используйте ReactiveCocoa 3 и 4 с основными данными
Я новичок в ReactiveCocoa и хотел бы использовать его в качестве замены для KVO на некоторых NSManagedObject
в проекте Swift 2.
Большинство примеров, которые я нашел, используют онлайн RACObserve()
, который был удален (?) в RAC 3. В журнале изменений говорится, что новые версии лишают KVO и я должны перейти к PropertyType
s.
Есть ли способ использовать Reactive Cocoa 3 и 4 на существующем NSManagedObject
аналогично тому, что можно сделать с RACObserve()
?
1 ответ
Документация ReactiveCocoa 3.0 указывает на DynamicProperty
Тип DynamicProperty можно использовать для подключения к API-интерфейсам Objective C, для которых требуется кодирование значения ключа (KVC) или наблюдение значения ключа (KVO), например NSOperation. Обратите внимание, что большинство свойств AppKit и UIKit не поддерживают KVO, поэтому их изменения следует наблюдать с помощью других механизмов. MutableProperty должен быть предпочтительнее, чем динамические свойства, когда это возможно!
Поэтому вам нужно создать объект DynamicProperty и использовать его signalProducer. Что-то вроде этого:
DynamicProperty(object: managedObject, keyPath: "attribute").producer
PS Исходный код ReactiveCocoa имеет потрясающую встроенную документацию. Проверьте это для получения дополнительной информации.