Мой проект имеет CoreData
базу данных с 1 корневым контекстом и несколькими подконтекстами.
У меня есть ViewModel
, который содержит предмет (NSManagedObject
). Когда я изменяю что-то в Item, постоянство создается в корневом контексте, а затем автоматически объединяется со всеми подконтекстами.
Я хочу заменить 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" )
, но я не хочу наблюдать только одно конкретное свойство элемента, я хочу наблюдать ВСЕ изменения.
Есть ли способ наблюдать ЛЮБОЕ изменение всех свойств объекта?