我的申请表中有以下内容:
我的第一个屏幕是由UITableView
支持的NSFetchedResultController
和一个刷新我的列表的后台线程。
当我单击一个单元格时,我的表格单元格的NSManagedObject
被称为DataItem
我推送另一个viewcontroller
,显示有关DataItem
的更多详细信息但是如果后台线程刷新列表的话我正在推动detailsviewcontroller
并且在此更新过程中我需要删除DataItem
对象,当我尝试访问detailsviewcontroller
中的DataItem
时,它会导致对象无效1}}会引发NSObjectInaccessibleException
:“核心数据无法解决......”
这种情况的最佳方法是什么?我应该从DataItem
传递必要的属性,而不是将detailsviewcontroller
对象传递给DataItem
,或者是否存在针对此类情况的解决方法?
谢谢
答案 0 :(得分:0)
看一下这篇文章:
http://cocoawithlove.com/2008/08/safely-fetching-nsmanagedobject-by-uri.html
在标题为“安全地获取对象”的部分中,Matt Gallagher描述了一种使用其URI获取托管对象的方法。因此,在您的情况下,不要将DataItem
实例传递给详细视图控制器,而是传递其URI。当详细信息视图控制器加载其视图时,尝试使用该文章中建议的方法从该URI获取对象。如果该对象不再可用,您将获得nil
值作为回报。
我没有亲自尝试过该代码示例,所以我不确定它是如何工作的。我希望它能让你走上解决方案的道路......