请问mergeChangesFromContextDidSaveNotification触发fetchedResultsController的objectsChanged:委托方法?

时间:2013-02-06 18:01:41

标签: ios core-data nsfetchedresultscontroller nsnotifications

我有一个设置,在后台线程中我在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中添加的新对象?

1 个答案:

答案 0 :(得分:1)

devQry,

当然,您已设置获取的结果控制器委托?如果不这样做,就无法调用任何东西。

安德鲁