В моем проекте CoreData
база данных с 1 корневым контекстом и несколькими подконтекстами. У меня есть ViewModel
, содержащий элемент (NSManagedObject
). Когда я что-то меняю в элементе, постоянство создается в корневом контексте, а затем автоматически объединяется со всеми подконтекстами.
Я хочу заменить NSFetchedResultsController
на ReactiveSwift
Сигналы / Свойства, чтобы наблюдать изменения в объекте элемента.
ViewModel:
var itemProperty: MutableProperty<Item> = MutableProperty(contextItem)
ViewController:
self.viewModel.itemProperty.signal.observeValues{ (item: Item) in
let newName = item.name
print("name: \(newName!)"
}
После того, как я изменил имя элемента в другом месте, изменения распространяются на подконтекст ViewModel
(NSFetchedResultsController
получает уведомление), НО сигнал никогда не подталкивает новое событие item
.
Может быть, потому что ссылка NSManagedObject
никогда не меняется? Я знаю, что могу наблюдать за изменениями определенных свойств объекта с помощью producer(forKeyPath: "propertyKeyPath" )
, но я не хочу наблюдать только одно конкретное свойство элемента, я хочу наблюдать ВСЕ изменения.
Есть ли способ наблюдать ЛЮБОЕ изменение всех свойств объекта ??