gpt4 book ai didi

iphone - NSFetchedResultsController 委托(delegate)方法在 mergeChangesFromContextDidSaveNotification 后未触发

转载 作者:行者123 更新时间:2023-12-03 18:47:35 25 4
gpt4 key购买 nike

一直在浏览与此类似的帖子,但没有一个回答我的问题。

与 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 的委托(delegate)方法都不会触发, TableView 也不会更新。

我尝试不缓存或清除它。我已经在 tableView 上尝试过 reloadData ,但没有任何结果。当我退出应用程序并重新启动时,它显示正常。

更新:该通知确实包含正确的上下文作为其对象,其中包含正确的项目,但userInfo 哈希中没有任何内容:

userInfo = {
inserted = "{(\n)}";
updated = "{(\n)}";
}

所以看起来通知中没有任何更改,尽管更改的项目具有正确的上下文......嗯。

最佳答案

最愚蠢错误奖也太……克里斯托夫!!

通知没有显示任何内容的原因是,我忘记在调用设置通知的委托(delegate)然后再次保存之前在单独的 MOC 上进行保存。

由于 MOC 刚刚保存,第二次保存没有更改,因此通知保持为空。删除第一个保存,正如我应该更早做的那样,确实解决了问题。

关于iphone - NSFetchedResultsController 委托(delegate)方法在 mergeChangesFromContextDidSaveNotification 后未触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3984381/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com