崩溃前保存核心数据上下文
Posted
技术标签:
【中文标题】崩溃前保存核心数据上下文【英文标题】:Saving Core Data Context before Crashing 【发布时间】:2013-03-04 20:14:28 【问题描述】:例如,如果我们在 XCode 中点击“停止”,它将关闭应用程序,模仿崩溃行为。
但是如果我的核心数据上下文没有保存,当我返回时,数据将不存在。
是否有任何解决方法?
是否应该在每次大操作完成时保存上下文?
谢谢。
【问题讨论】:
【参考方案1】:根据我的经验,您应该在使用 Core Data 保存机制时确定正确的粒度。
恕我直言(也许其他人可能有不同的意见)没有可遵循的标准。我的经验法则是考虑两个不同的方面。 用户和表现。
在第一种情况下,您应该在用户执行关键操作时保存。例如用户在表单中插入了很多值,因此他希望不再插入它们。关于第二个方面,保存操作可能会影响应用程序的性能。如果您经常将更改写入磁盘,则应用程序的响应速度会降低。相反,内存中有这么多对象可能会导致内存警告(这会导致 Core Data 采取特定的行为)。
权衡可能是使用后台操作来保存更改或利用新的 Core Data API。显然,以前的规则仍然有效。
【讨论】:
嗯.. 有道理。感谢您的洞察力。以上是关于崩溃前保存核心数据上下文的主要内容,如果未能解决你的问题,请参考以下文章
(Swift 3) 父子上下文崩溃核心数据 (libc++abi.dylib: 以 NSException (Recorded Frame) 类型的未捕获异常终止)