使用NSManagedObject子类和关系进行核心数据轻量级迁移

时间:2014-03-06 20:48:30

标签: ios core-data model migration schema

我正在更新我的Core Data模型以包含更多实体和属性,并且在涉及关系和NSManagedObjectSubclasses时需要一些指导。

我已遵循此处的指导http://www.raywenderlich.com/27657/how-to-perform-a-lightweight-core-data-migration并成功设法添加我的应用的新模型版本,添加具有属性的新实体并设置与另一个实体的关系。我还成功更新了AppDelegate设置。

这很有效。但是,我需要为我的新实体生成一个NSManagedObject子类,并使用它的NSManagedObjectSubclass更新与另一个实体的关系。

我已经测试了我的应用程序并且它仍在处理数据,但是如果我为新实体生成新的NSmanagedObject子类并为与此新实体有关系的另一个实体重新生成NSManagedOBject子类,则赢得'是否要求我从型号不匹配的手机中删除应用程序?

我没有尝试过,因为我需要在进行更改之前对其进行测试,但我需要一些有关此问题的指导。

1 个答案:

答案 0 :(得分:2)

迁移仅影响持久性存储,确保它与您的托管对象模型匹配。

您的NSManagedObject子类使用模型和持久存储,但它们不会影响它。

是的,您可以安全地继续下一步:确保更新NSManagedObject子类(以及应用程序的其他部分)以处理新更新的托管对象模型的结构。

但只是为了说清楚:如果再次更改模型(调整关系等),那么测试设备的数据库可能会变得不兼容,您可能需要重新开始迁移测试。 / p>

这就是我问你是否使用源代码管理的原因。您几乎肯定希望构建和安装以前版本的应用程序,以便反复测试迁移。