我有一个设置,在后台线程中,我将新对象保存在 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:
,并且controllerDidChangeContent:
在收到 MOC A 的通知后没有被调用。
我是否必须重新获取 MOC B 的 fetchedResultsController 中的数据才能看到 MOC A 中添加的新对象?