1

次のように新しいNSManagedObjectインスタンスを追加するとNSManagedObjectContext:

NSManagedObject *newObject = [NSEntityDescription insertNewObjectForEntityForName:@"Bla" inManagedObjectContext:self.managedObjectContext];
[newObject setValue:@"New Object" forKey:@"name"];

新しい値として「名前」値「新しいオブジェクト」で1 NSManagedObjectContextObjectsDidChangeNotificationを取得します。NSInsertedObjectsKey

私は得ることを期待します:

  • InsertedObjectKey「名前」の新しい値を持つ1 つの通知 = nil
  • UpdatedObjectKey"name" = "New Object" の新しい値を持つ1 つの通知

これは機能だと思いますが、確かに注意してください..

4

2 に答える 2

4

管理対象オブジェクト コンテキストは、それらの変更をまとめます。値が変更されるたびに通知を受けるのではなく、変更の「塊」が終わるたびに定期的に通知されます。

特に各変更の通知が個別に必要な場合は、上記のコードで -processPendingChanges を間に呼び出すことができます

于 2012-06-02T07:35:17.107 に答える
3

NSManagedObjectContext Class Referenceでは、以下に記載されていますinsertedObjects

マネージド オブジェクト コンテキストは、insertObjects の戻り値が変更されたときにキー値監視通知を送信しません。ただし、変更が行われると NSManagedObjectContextObjectsDidChangeNotification 通知を送信し、変更がコミットされる前と後にそれぞれ NSManagedObjectContextWillSaveNotification と NSManagedObjectContextDidSaveNotification 通知を送信します。

于 2012-06-01T23:26:31.640 に答える