我正在更新核心数据模型,以包括更多实体和属性,并且在关系和NSManagedObjectSubclasses方面需要一些指导。
我已按照http://www.raywenderlich.com/27657/how-to-perform-a-lightweight-core-data-migration的指导进行操作,并成功地添加了我的应用程序的新模型版本,添加了具有属性的新实体,并建立了与另一个实体的关系。我还成功地更新了AppDelegate设置。
效果很好。但是,我需要为我的新实体生成一个NSManagedObject子类,并使用其NSManagedObjectSubclass更新与另一个实体的关系。
我已经测试了我的应用程序,它仍然可以正常使用数据,但是如果我为新实体生成新的NSmanagedObject子类并为与该新实体有关系的其他实体重新生成NSManagedOBject子类,则不需要我要从型号不匹配的手机中删除该应用程序?
我没有尝试过,因为我需要在进行更改之前对其进行测试,但是我需要有关此问题的一些指导。
最佳答案
迁移只会影响持久性存储,请确保其与您的托管对象模型匹配。
您的NSManagedObject子类使用模型和持久性存储,但不影响它。
因此,是的,您可以放心地继续下一步:确保已更新NSManagedObject子类(以及应用程序的其他部分)以处理新近更新的托管对象模型的结构。
但是,要明确地说:如果再次更改模型(更改关系等),则测试设备的数据库可能会变得不兼容,并且您可能需要重新开始迁移测试。
这就是为什么我问您是否使用源代码管理的原因。您几乎肯定会想要构建和安装应用程序的早期版本,以便可以反复测试迁移。
关于ios - 带有NSManagedObject子类和关系的核心数据轻量级迁移,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22235623/