1

バックグラウンドスレッドで新しいオブジェクトをmanagedObjectContext Aに保存し、TableViewControllerで次のNSManagedObjectContextDidSaveNotificationように通知をリッスンして処理するセットアップがあります。

- (void) refreshData:(NSNotification *)notif {
   assert([[self fetchedResultsController] managedObjectContext] == self.managedObjectContext);
   if ([notif object] != self.managedObjectContext) {
       [self.managedObjectContext mergeChangesFromContextDidSaveNotification:notif];
   }
}

self.managedObjectContextMOC B は、MOC A と同じ NSPersistentStoreCoordinator に接続されています (スレッドの閉じ込めパターン 1)。

TableViewController は、NSFetchedResultsControllerMOC B からデータを読み取るデリゲートです。

controller:didChangeObject:atIndexPath:forChangeType:newIndexPath:MOC A からの通知を受け取った後、デリゲート メソッドが呼び出されcontrollerDidChangeContent:ないことがわかりました。

MOC A に追加された新しいオブジェクトを表示するには、MOC B の fetchedResultsController でデータを再フェッチする必要がありますか?

4

1 に答える 1

1

devQry、

もちろん、取得した結果のコントローラー デリゲートを設定しましたか? そうしないと、何も呼び出されません。

アンドリュー

于 2013-02-07T12:40:14.567 に答える