例如,如果我们在XCode中点击“停止”,它将关闭应用程序,模仿崩溃行为。
但如果我的核心数据上下文尚未保存,那么当我返回时,数据将不会存在。
是否有解决方法?
我是否应该在每次大型操作完成后保存上下文?
感谢。
答案 0 :(得分:2)
根据我的经验,您应该在使用Core Data保存机制时确定正确的粒度。
恕我直言(也许其他人可能有不同意见)没有标准可循。我的经验法则是考虑两个不同的方面。 用户和效果。
在第一种情况下,只要用户执行关键操作,您就应该保存。例如用户在表单中插入了很多值,因此他不希望再插入它们。关于第二个方面,保存操作可能会影响应用程序的性能。如果您经常将更改写入磁盘,则应用程序的响应速度会降低。相反,在内存中有这么多对象可能导致内存警告(这些将导致Core Data采取特定行为)。
权衡可能是使用后台操作来保存更改或利用新的Core Data API。显然,以前的规则仍然有效。