Iphone NSFetchedResultsController委托方法在mergeChangesFromContextDidSaveNotification后未激发
我一直在浏览类似于这篇文章的帖子,但没有一篇能回答我的问题 与CoreDataBooks一样,我使用单独的MOC添加和编辑项目,并遵守适当的通知,如:Iphone NSFetchedResultsController委托方法在mergeChangesFromContextDidSaveNotification后未激发,iphone,core-data,nsfetchedresultscontroller,Iphone,Core Data,Nsfetchedresultscontroller,我一直在浏览类似于这篇文章的帖子,但没有一篇能回答我的问题 与CoreDataBooks一样,我使用单独的MOC添加和编辑项目,并遵守适当的通知,如: - (void)addControllerContextDidSave:(NSNotification*)saveNotification { NSManagedObjectContext *context = [self.fetchedResultsController managedObjectContext]; // Mergin
- (void)addControllerContextDidSave:(NSNotification*)saveNotification {
NSManagedObjectContext *context = [self.fetchedResultsController managedObjectContext];
// Merging changes causes the fetched results controller to update its results
[context mergeChangesFromContextDidSaveNotification:saveNotification];
NSLog(@"merging changes in rootview");
}
当我进行保存时,它被正确地观察到。调试通知将显示正确的上下文,调试上下文将显示刚刚添加的项。日志消息也可以正常打印。但什么也没发生。NSFetchedResultsController的任何委托方法都不会触发,表视图也不会更新
我没有尝试缓存或清除它。我尝试过在tableView上重新加载数据,但是没有。
当我退出应用程序并重新启动时,它显示良好
更新:
通知确实包含正确的上下文作为其对象
,该对象包含正确的项,但userInfo
散列中没有任何内容:
userInfo = {
inserted = "{(\n)}";
updated = "{(\n)}";
}
因此,尽管已更改项具有正确的上下文,但通知中似乎没有任何更改。。。。嗯。最愚蠢的错误奖颁给了。。。克里斯托夫 通知没有显示任何内容的原因是,我忘记在调用设置通知的代表并再次保存之前,在单独的MOC上进行保存 由于MOC刚刚保存,第二次保存没有任何更改,因此通知保持为空。正如我早就应该做的那样,删除第一次保存确实解决了问题