当我向NSManagedObject
添加新的NSManagedObjectContext
实例时,这样:
NSManagedObject *newObject = [NSEntityDescription insertNewObjectForEntityForName:@"Bla" inManagedObjectContext:self.managedObjectContext];
[newObject setValue:@"New Object" forKey:@"name"];
我得到 1 NSManagedObjectContextObjectsDidChangeNotification
NSInsertedObjectsKey
,新值为“名称”值“新对象”。
我希望得到:
InsertedObjectKey
通知,其新值为“name”= nil UpdatedObjectKey
通知,其新值为“name”=“New Object”我觉得这是一个功能,但我必须确定..
答案 0 :(得分:4)
托管对象上下文将其更改捆绑在一起。您不会收到有关每个值更改的通知,而是会在每次“更改”更改结束时定期收到通知。
如果您特别希望单独通知每个更改,请在上面的代码中调用-processPendingChanges
答案 1 :(得分:3)
在insertedObjects
当insertedObjects的返回值发生更改时,托管对象上下文不会发布键值观察通知 - 但是,在进行更改时发布NSManagedObjectContextObjectsDidChangeNotification通知,并且在更改之前和之后发布NSManagedObjectContextWillSaveNotification和NSManagedObjectContextDidSaveNotification通知分别承诺。