我正在尝试在NSManagedObjectContextWillSaveNotification
上观察单个NSManagedObject
的更改:
我想要观察每个NSManagedObject
的变化,这是通过使用NSManagedObjectContextWillSaveNotification
实现的:
- (void)managedObjectContextWillSave:(NSNotification *)notification
{
for (NSManagedObject * object in self.mutableObservedManagedObjects)
{
if (object.hasChanges)
{
[self managedObjectWasUpdated:object];
}
}
}
问题在于object.changedValues
为空,但是hasChanges
为true,因此错误地(?)触发了managedObjectWasUpdated:
。我正在尝试了解这种情况的原因,以及在调用managedObjectWasUpdated:
之前是否应该更好地检查object.changedValues.count
。
isInserted
和isDeleted
都为false。
hasChanges
基于 Core Data 知道的所有内容(包括 Z_OPT)。changedValues()
报告实体中不同的字段。在大多数情况下,应用程序可能更关心changedValues().isEmpty
。 - Colin MNSManagedObject
中引入的新属性var hasPersistentChangedValues: Bool
,而不是检查changedValues.count
。 - Wojciech Nagrodzki[NSManagedObjectContext -hasChanges]
仍然会是true
。 - ReDetection