得到一个真正奇怪的错误。我有视图控制器B从CoreData获取对象数组。当我计算并打印结果时,它匹配我对核心数据对象数量的例外。
当我使用导航器后退按钮转到主视图控制器时,我设置了一些调试代码来获取所有核心数据对象,并且我得到的返回比我预期的多,并且所有对象都是nil或0。
然后,当我有时回到B并进行新的提取时,有时我会得到预期的结果,有时会获取这个额外的结果。
问题是我使用获取的核心数据来填充tableview,因此行数减去1,并且因为nil,我的单元格中的几个可选objets没有被解包,因为不期望nil因此得到崩溃。
在视图控制器B的开头尝试了context.reset()。
甚至不确定向代码展示每个人的内容。对我没有意义。我做了一个视图控制器B的调试演练,我没有将任何记录保存到核心数据。
就像我提到的那样,有时会在主视图控制器和视图控制器b之间来回翻转,有时会返回额外的结果,有时它会消失,最终会被捕获并返回nil并崩溃。
思想?
答案 0 :(得分:0)
对于本期ha中的人,请在保存之前通过断点查看您的managedobject上下文。我的问题是在获取核心数据记录进行修改后,我通过调用托管对象创建了一个插入实例:insertinto。因此,当我去保存时,我检查了断点,上下文正在更新记录并插入一个记录。因此,通过删除插入,我刚刚更新了获取的结果。