小编Phi*_*iso的帖子

NSFetchedResultsController试图插入nil对象

编辑7:

这是我的保存方法.这是很漂亮的样板.只有在调试版本的情况下才会执行DEBUG_LOG()宏.

- (void)saveManagedObjectContext:(NSManagedObjectContext *)moc
{
    if ([moc hasChanges]) {
        DEBUG_LOG(@"Saving managed object context %@", moc);
        NSError *error;
        BOOL success = [moc save:&error];
        if (!success || error) {
            DEBUG_LOG(@"ERROR: Couldn't save to managed object context %@: %@",
                  moc, error.localizedDescription);
        }
        DEBUG_LOG(@"Finished saving managed object context %@", moc);
    } else {
        DEBUG_LOG(@"Managed object context %@ had no changes", moc);
    }
}
Run Code Online (Sandbox Code Playgroud)

编辑6:

iOS 8就在这里,这个问题又回来了.幸运的我.以前我把问题缩小到在表视图上使用estimatedRowHeight(顺便说一句,我从来没有完全解决问题.我刚停止使用estimatedRowHeight).现在我在不同情况下再次看到这个问题.几天前,当我将导航/标签栏设置为半透明时,我将其追踪到了一个提交.这包括在故事板中禁用"调整滚动视图插入"并选中复选框以使我的视图显示在顶部栏和底栏之下.我需要做一系列步骤来实现它,但我每次都可以通过这种方式配置故事板来重现它.如果我还原那个提交它就不再发生了.

虽然我说,"它不再发生",我真的认为这只是让它不太可能发生.这个bug是绝对的b****.我现在的直觉反应是这是一个iOS错误.我只是不知道我能做些什么来把它变成一个bug报告.这很疯狂.

编辑5:

如果你想阅读我的全部痛苦,请继续阅读这篇文章.如果你遇到这个问题而你只是想要一些帮助,这里有一些需要考虑的问题.

我的上一次编辑指出,当我使用基本的表视图单元格时,一切正常.我的下一步行动将是从头开始尝试逐个构建一个新的自定义单元格并查看它搞砸了.对于它的地狱,我重新启用我的旧自定义单元格代码,它工作得很好.唔?哦等等,我还是已经estimatedHeightForRowAtIndexPath评论过了.当我删除这些评论并启用时estimatedHeightForRowAtIndexPath,它再次变得糟透了.有趣.

我在API文档中查找了该方法,并提到了一个关于常量调用的内容UITableViewAutomaticDimension.我估计的值实际上只是常见的单元格高度之一,因此切换到该常量不会有什么坏处.切换到该常量后,它正常工作.报告没有奇怪的异常/图形故障.

原帖

我有一个非常标准的iPhone应用程序,它在后台从Web服务获取数据,并在表格视图中显示数据.后台更新工作具有为NSPrivateQueueConcurrencyType配置的自己的托管对象上下文.我的表视图的获取结果控制器具有为NSMainQueueConcurrencyType配置的自己的托管对象上下文.当后台上下文解析新数据时,它会将该数据传递给主上下文mergeChangesFromContextDidSaveNotification.有时在合并期间,我的应用程序在这里遇到异常......

Thread 1, …
Run Code Online (Sandbox Code Playgroud)

core-data objective-c uitableview nsfetchedresultscontroller ios

25
推荐指数
1
解决办法
2660
查看次数