在支持核心数据的iOS应用程序中,为应用程序委托生成的代码包含saveContext
函数,注释建议用代码替换abort()
以从错误中恢复。
是否有一些标准样板(即非特定于应用程序的)代码可以真正从此类错误中恢复?
我在考虑删除核心数据中的所有数据。这会有帮助吗?它能掩盖任何类型的错误吗?
最后,如何测试此恢复代码?
发布于 2011-09-16 13:57:33
本身没有样板代码,但通常指南建议向用户显示一条错误消息(最有可能是使用UIAlertView
)。通常,当存在无效对象(具有未设置的非可选属性)以及一个对象具有两个版本时(当对象在一个上下文中创建而在另一个上下文中“刷新”时),上下文保存将失败。前一种情况要求显示验证错误,并让用户有机会在执行保存的同一屏幕中修复它们。后一种情况具有CoreData cookbook中讨论的后台合并技术(该技术使用删除对象的一个版本或合并更改)。
另外,根据我的经验,在AppDelegate中保存上下文并不是很必要。我建议为对象创建创建单独的上下文,并让应用程序委托只将初始MOC传递给窗口的rootViewController
。
https://stackoverflow.com/questions/7440375
复制相似问题