CoreData NSObjectInaccessibleException

时间:2011-06-20 09:59:10

标签: iphone core-data

我的申请表中有以下内容:
我的第一个屏幕是由UITableView支持的NSFetchedResultController和一个刷新我的列表的后台线程。 当我单击一个单元格时,我的表格单元格的NSManagedObject被称为DataItem我推送另一个viewcontroller,显示有关DataItem的更多详细信息但是如果后台线程刷新列表的话我正在推动detailsviewcontroller并且在此更新过程中我需要删除DataItem对象,当我尝试访问detailsviewcontroller中的DataItem时,它会导致对象无效1}}会引发NSObjectInaccessibleException:“核心数据无法解决......”

这种情况的最佳方法是什么?我应该从DataItem传递必要的属性,而不是将detailsviewcontroller对象传递给DataItem,或者是否存在针对此类情况的解决方法?

谢谢

1 个答案:

答案 0 :(得分:0)

看一下这篇文章:

http://cocoawithlove.com/2008/08/safely-fetching-nsmanagedobject-by-uri.html

在标题为“安全地获取对象”的部分中,Matt Gallagher描述了一种使用其URI获取托管对象的方法。因此,在您的情况下,不要将DataItem实例传递给详细视图控制器,而是传递其URI。当详细信息视图控制器加载其视图时,尝试使用该文章中建议的方法从该URI获取对象。如果该对象不再可用,您将获得nil值作为回报。

我没有亲自尝试过该代码示例,所以我不确定它是如何工作的。我希望它能让你走上解决方案的道路......