我添加了新版本的数据模型,并将一个属性从double更改为float。 我真的必须创建迁移映射吗?
所以现在我被卡住了。
我发现有关使用NSMappingModels(和XCode 3)迁移到新数据模型的Apple文档,但我不知道如果只是属性类型发生了变化,是否真的有必要。
更新我的应用程序后,我从persistentStoreCoordinator获取了错误信息:
无法打开持久存储:错误域= NSCocoaErrorDomain代码= 134130“操作无法完成。
如果仅更改了属性类型,是否有一种简单的方法(howto / tutorial)进行迁移?删除应用程序不是解决方案,已经部署了第一个版本。
谢谢, 克里斯
答案 0 :(得分:1)
根据lighweight migration rules,我认为您无法自动执行此操作。您必须创建一个NSMappingModel,在创建期间选择它上面的旧版本和新版本。它将自动为您的所有属性和关系创建迁移,但您更改的属性除外。
对于包含该属性的模型,您必须创建NSEntityMigrationPolicy的子类并告诉您的NSMappingModel使用它(单击NSMappingModel中的实体,并在屏幕右侧的检查器中将其设置为“自定义策略” “field。对于该特定属性,在NSEntityMigrationPolicy的子类中创建一个方法并在那里执行转换。
答案 1 :(得分:-1)