正在浏览与此相似的帖子,但没有人回答我的问题。
与CoreDataBooks一样,我使用单独的MOC来添加和编辑项目并观察正确的通知,如下所示:
- (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上尝试了reloadData
,但没有。
当我退出应用程序并重新启动时,它显示正常。
更新:
通知确实包含正确的上下文作为其object
,其中包含正确的项目,但userInfo
哈希中没有任何内容:
userInfo = {
inserted = "{(\n)}";
updated = "{(\n)}";
}
所以看起来通知中没有任何变化,尽管与更改的项目有正确的上下文....嗯。
答案 0 :(得分:1)
最愚蠢的错误奖励太多了... Christoph !!
通知没有显示任何内容的原因是我忘记在单独的MOC上取消保存,然后再致电设置通知的代表然后再次保存。
由于MOC刚刚保存,第二次保存没有变化,因此通知保持空白。删除第一个保存,就像我之前应该做的那样,确实解决了这个问题。