我有一个设置,在后台线程中我在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是来自MOC B的NSFetchedResultsController
读数数据的委托。
我发现委托方法controller:didChangeObject:atIndexPath:forChangeType:newIndexPath:
和controllerDidChangeContent:
在收到MOC A的通知后不会被调用。
我是否必须重新获取MOC B的fetchedResultsController中的数据才能看到在MOC A中添加的新对象?
答案 0 :(得分:1)
devQry,
当然,您已设置获取的结果控制器委托?如果不这样做,就无法调用任何东西。
安德鲁