防止核心数据错误

Posted

技术标签:

【中文标题】防止核心数据错误【英文标题】:Preventing Core Data Errors 【发布时间】:2011-01-31 08:02:42 【问题描述】:

我已经为应用商店创建了一个 Mac 应用程序 - 现在发现有必要为 Core Data 修改我的“模型”文件。根据我的经验,更改此模型会在打开与旧模型相关联的旧文件(基于文档的应用程序)时产生错误。我在 Apple 文档中读过,您可以通过保持旧模型“版本化”然后创建新模型来防止这种情况(我可能弄错了) - 有人对此有任何提示吗?我不想从无法打开文件的人那里收到一堆愤怒的电子邮件。提前致谢!

扎克

【问题讨论】:

您可能希望查看this thread。它详细描述了如何进行自动轻量级迁移。我也根据这个描述在我的应用程序中实现了它。 我应该指定 - 我的应用程序适用于 Mac。此主题不相关? 我注意到这是否特定于 iPhone。你检查过轻量级迁移的文档吗?对我来说,它看起来好像也适用于 mac,但我可能错了。 查看 Mathieu Cormer 的这篇博文,其中解释得很好。 preenandprune.com/cocoamondo/?p=468 太好了,谢谢! 【参考方案1】:

您可能想查看: Core Data Model Versioning and Data Migration Programming Guide

您似乎正在寻找“轻量级迁移”。

该文档中有一些提示:

添加新属性时,这些属性必须定义为可选 重命名项目或属性需要指定重命名标识符 ...

【讨论】:

以上是关于防止核心数据错误的主要内容,如果未能解决你的问题,请参考以下文章

如果服务器错误 401,防止 Restkit 删除孤立对象

如何防止致命错误:在展开可选值时意外发现 nil

如何防止我的程序出现此分段错误(核心转储)?

实施数据模型以防止常见错误

多个 NSManagedObjectContexts - 防止竞争条件和死锁

如何在使用 Nuxt 的 fetch() 挂钩获取数据时防止模板错误