Stu*_* P. 5 migration core-data objective-c ios
我之前处理过轻量级迁移以及映射基本更改,但是我已经google了,并且没有找到类似的情况,其中实体名称保持不变,但属性类型正在从int更改为string(我认为很容易做到的事情)
我认为通过继承NSEntityMigrationPolicy,我在正确的轨道上,然后我将mappingmodel中的自定义策略字段设置为此子类(即使在Xcode重新启动后它也没有自动完成...)

但我发现createDestinationInstancesForSourceInstance没有被调用

现在,因为我正在处理自定义映射模型和策略,我是否还应该推断映射模型,但在持久存储中自动关闭迁移?
NSDictionary *options = @{NSMigratePersistentStoresAutomaticallyOption:@NO,
NSInferMappingModelAutomaticallyOption:@YES};
Run Code Online (Sandbox Code Playgroud)
任何帮助是极大的赞赏!
我真的希望在属性映射表达式中我可以做一些像$ source.incrementer.string :)

你不能使用轻量级迁移,所以它有点难(感谢Apple),但并非不可能
在Xcode 7.1中一步一步:
1.创建新的模型版本:
.xcdatamodeld型号 - > Editor- >Add model version ...attribute type2.自定义核心数据映射模型
New file -> Mapping Model (核心数据 - >映射模型)source模型的(从模型)和target(模型)版本NameToName.更改此文件中目标实体中已更改属性的值表达式反映了您需要的值:FUNCTION($entityPolicy, "<*transformingMethodName*>" , $source.<*attributeName*>)- transformingMethodName:将调用以转换属性类型的自定义方法.(将在下一步中定义它 - 保持)
- attributeName:您更改的属性名称
<*EntityName*>TransformationPolicy类作为的子类NSEntityMigrationPolicytransformingMethodName上面定义的.(做你需要的东西来改变属性类型).确保您也将此方法添加到头文件中