《Core Data应用开发实践指南》一3.2 添加模型版本

简介:

本节书摘来自华章出版社《Core Data应用开发实践指南》一书中的第3章,第3.2节,作者 (美)Tim Roadley,更多章节内容可以访问云栖社区“华章计算机”公众号查看

3.2 添加模型版本

为了不使应用程序像图3-1那样崩溃,我们需要在修改模型之前先创建新的模型版本。添加新模型之后,就不应该再删除旧版的模型了。旧的模型有助于把原来的持久化存储区迁移到当前的模型版本。假如用户的设备上原来就没有持久化存储区,那么可以先不考虑模型版本控制问题,等到应用程序在App Store上架之后再说。
请按下列步骤修改Grocery Dude,以便添加模型版本:

  1. 选中Model.xcdatamodeld。
  2. 点击Editor>Add Model Version...菜单项。
  3. 点击Finish按钮,将Model 2用作版本名称。
    现在项目中应该会有两个版本的模型了,如图3-2所示。

image

Model 2.xcdatamodel这个新模型的内容一开始便与Model.xcdatamodel完全相同,而开发者不经意间就会在错误的模型版本上进行修改。所以,为了防止这一情况,在编辑模型之前,应再三检查你所选定的模型是不是自己要编辑的那个版本。应该养成抓取快照的习惯,甚至可以在编辑模型之前把整个项目都备份起来。
image

请按下列步骤修改Grocery Dude,以便重新引入Measurement实体:

  1. 可以在执行修改之前先抓取快照或备份整个Grocery Dude项目。
  2. 选定Model 2.xcdatamodel。
  3. 创建名为Measurement的新实体。
  4. 选定Measurement实体,创建名叫abc的属性,并将其类型设为String。
    添加了新版模型之后,必须将其设为当前版本(current version),然后才能使应用程序使用它。

请按下列步骤修改Grocery Dude,以便修改当前的模型版本:

  1. 选定Model.xcdatamodeld。
  2. 点击View>Utilities>Show File Inspector菜单项(或按“Option++1”组合键)。
  3. 将Current Model Version设为Model 2,如图3-3所示。
    如果想正常运行应用程序,那么我们还必须配置好迁移选项,告诉Core Data应该如何迁移。要是现在就去运行应用程序的话,那自然还是会发生Store is incompatible(存储区不兼容)错误。
相关文章