Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cocoa 插入后的NSManagedObjectContextObjectsIDChangeNotification_Cocoa_Core Data_Nsnotificationcenter - Fatal编程技术网

Cocoa 插入后的NSManagedObjectContextObjectsIDChangeNotification

Cocoa 插入后的NSManagedObjectContextObjectsIDChangeNotification,cocoa,core-data,nsnotificationcenter,Cocoa,Core Data,Nsnotificationcenter,当我将一个新的NSManagedObject实例添加到NSManagedObjectContext时,如下所示: NSManagedObject *newObject = [NSEntityDescription insertNewObjectForEntityForName:@"Bla" inManagedObjectContext:self.managedObjectContext]; [newObject setValue:@"New Object" forKey:@"name"]; 我

当我将一个新的
NSManagedObject
实例添加到
NSManagedObjectContext
时,如下所示:

NSManagedObject *newObject = [NSEntityDescription insertNewObjectForEntityForName:@"Bla" inManagedObjectContext:self.managedObjectContext];
[newObject setValue:@"New Object" forKey:@"name"];
我获得1
nsmanagedObjectContextObjectsIDChangeNotification
,其中包含
NSInsertedObjectsKey
,新值为“name”值“new Object”

我希望得到:

  • 1
    InsertedObjectKey
    通知,新值为“name”=nil
  • 1
    updateObjectKey
    通知,新值为“name”=“new Object”
我感觉这是一个功能,但我肯定地注意到..

insertedObjects

当insertedObjects的返回值更改时,托管对象上下文不会发布键值观察通知,但在进行更改时,会发布NSManagedObjectContextObjectsIDChangeNotification通知,以及NSManagedObjectContextWillSaveNotification和NSManagedObjectContextDidSaveNotification,分别在提交更改之前和之后发送

在中,它在
insertedObjects

当insertedObjects的返回值更改时,托管对象上下文不会发布键值观察通知,但在进行更改时,会发布NSManagedObjectContextObjectsIDChangeNotification通知,以及NSManagedObjectContextWillSaveNotification和NSManagedObjectContextDidSaveNotification,分别在提交更改之前和之后发送


托管对象上下文将它们的更改组合在一起。您不会收到每一个值更改的通知,而是在每次“一块”更改结束时定期收到通知


如果您特别希望对每个更改分别发出通知,那么在上面的代码中,您可以调用-processPendingChanges(介于

托管对象上下文之间),将它们的更改组合在一起。您不会收到每一个值更改的通知,而是在每次“一块”更改结束时定期收到通知


如果您特别希望为每个更改分别发送通知,那么在上面的代码中,您可以在中间调用-processPendingChanges

问题是:我是否遗漏了什么?这是一个特征吗?问题是:我遗漏了什么吗?这是一个功能吗?