如果使用映射模型,您的源模型将是v1.0模型,目标将是您的新v2.0模型。您可以通过使用轻量级迁移而不使用映射模型而脱身,文档here。
这就是说你需要去你的应用程序委托并设置持久存储的相关选项。
它应该是这个样子
NSDictionary *options = @{NSMigratePersistentStoresAutomaticallyOption: @YES, NSInferMappingModelAutomaticallyOption: @YES};
[persistentStoreCoordinator addPersistentStoreWithType:storeType configuration:config URL:storeURL options:options error:&error];
的NSMigratePersistentStoresAutomaticallyOption
键告诉核心数据检查当前管理对象模型版本是你使用,并到店迁移到更新的模型商店不同。 NSInferMappingModelAutomaticallyOption
告诉它试图将自己的映射工作。这是'轻量级迁移'位。
大部分情况已经存在,您只需添加选项字典即可。它将在- (NSPersistentStoreCoordinator *)persistentStoreCoordinator
方法中。如果您未设置至少NSMigratePersistentStoresAutomaticallyOption
,则不会进行移植。
轻量级映射在开发时也很有用。这意味着您可以对模型进行更改,而无需每次都重新映射映射。