何时版本化 Core Data 模型

Posted

技术标签:

【中文标题】何时版本化 Core Data 模型【英文标题】:When to version Core Data model 【发布时间】:2014-03-18 19:08:36 【问题描述】:

我有一个使用 Core Data 的应用程序,它是该应用程序的第一个版本。在将第一个版本上传到 App Store 之前,我是否应该为我的 xdatamodeld 中的未来更改做一些准备?或者我只需要在模型发生变化的未来应用版本上进行模型版本控制?

【问题讨论】:

您是否已经计划了更改?以后每次进行更改时只需对模型进行版本化。 我目前没有计划更改,但我可能需要在未来做一些更改。 那么创建一个新版本。 【参考方案1】:

您可以按原样提交,但我通常会确保我为模型提供了标识符(选择您的模型,检查文件检查器)。当您将来更改模型时,您将执行以下操作:

    选择 *.xcdatamodelId 选择编辑器 > 添加模型版本 提供基于之前模型的版本名称 确保选择刚刚创建的新版本 给它一个新的标识符(在文件选择器中) 进行更改 选择 *.xcdatamodelId 并更改模型版本(在文件选择器中)

现在你想测试。切换到以前的版本,安装并运行。切换到新版本并运行它。你在启动时崩溃了吗?如果有什么问题,否则你很高兴。

无论某人来自哪个模型版本,您都希望确保迁移到新版本。

阅读材料:

http://www.raywenderlich.com/27657/how-to-perform-a-lightweight-core-data-migration http://www.objc.io/issue-4/core-data-migration.html

【讨论】:

谢谢,解释得很好。

以上是关于何时版本化 Core Data 模型的主要内容,如果未能解决你的问题,请参考以下文章

Core Data NSInternalInconsistencyException(这次不同)

有两个相同模型版本时的 Core Data 迁移

考虑使用 Core Data 轻量级迁移的多个数据模型版本

在哪里可以找到有关 Core Data 对象模型版本控制和迁移的更多详细信息?

更新 iOS Core Data 版本以避免崩溃

轻量级迁移后如何从 Core Data 中删除数据