我正在尝试观察NSManagedObject上各个NSManagedObjectContextWillSaveNotification的变化:

- (void)managedObjectContextWillSave:(NSNotification *)notification
{
    for (NSManagedObject * object in self.mutableObservedManagedObjects)
    {
        if (object.hasChanges)
        {
            [self managedObjectWasUpdated:object];
        }
    }
}

问题是hasChanges为true而object.changedValues为空,因此错误地(?)触发了managedObjectWasUpdated:

我试图理解为什么会这样,如果我最好在调用object.changedValues.count之前检查managedObjectWasUpdated:
isInsertedisDeleted均为假。

最佳答案

我遇到了同样的问题。除了获取标志之外,我只是检查changedValues()是否为空。

对于Swift:

if !managedObject.changedValues().isEmpty {
    // Has some changed values
}

关于ios - NSManagedObject的hasChanges为true,而changedValues为空,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26293852/

10-12 14:39