バックグラウンドスレッドで新しいオブジェクトをmanagedObjectContext Aに保存し、TableViewControllerで次のNSManagedObjectContextDidSaveNotification
ように通知をリッスンして処理するセットアップがあります。
- (void) refreshData:(NSNotification *)notif {
assert([[self fetchedResultsController] managedObjectContext] == self.managedObjectContext);
if ([notif object] != self.managedObjectContext) {
[self.managedObjectContext mergeChangesFromContextDidSaveNotification:notif];
}
}
self.managedObjectContext
MOC B は、MOC A と同じ NSPersistentStoreCoordinator に接続されています (スレッドの閉じ込めパターン 1)。
TableViewController は、NSFetchedResultsController
MOC B からデータを読み取るデリゲートです。
controller:didChangeObject:atIndexPath:forChangeType:newIndexPath:
MOC A からの通知を受け取った後、デリゲート メソッドが呼び出されcontrollerDidChangeContent:
ないことがわかりました。
MOC A に追加された新しいオブジェクトを表示するには、MOC B の fetchedResultsController でデータを再フェッチする必要がありますか?