我的xcmappingmodel中的自定义策略将不会被执行

我试图为我的应用程序创build一个具有一些自定义代码的映射模型。 因此,我创build了一个xcmappingmodel,并将NSEntityMigrationPolicy分类并实现了

createDestinationInstancesForSourceInstance 

方法。 此外,我在我的映射模型的“自定义策略”字段中input了类名。 不幸的是,我的代码将永远不会被调用(尝试断点和日志)。 我的商店是使用以下选项创build的:

 NSMigratePersistentStoresAutomaticallyOption: YES NSInferMappingModelAutomaticallyOption: YES 

我正在使用XCode 4.0.2(也用XCode 4.2进行testing)。 所有其他的“轻量级”迁移运行平稳。 我需要做什么才能使我的自定义迁移运行?

你的模型版本有什么不同? 核心数据必须认识到商店与模型不兼容(表示为NSManagedObjectModel对象)。 这是通过创build每个实体的属性的哈希值并散列这些值来表示每个实体的哈希值来完成的。 如果这些数值没有改变,那么模型就不能被区分。

有关数据模型更改所需的更多信息可以帮助您。

NSInferMappingModelAutomaticallyOption应设置为NO。

另外,如果模型不同,则可以在“实体”检查器中设置版本哈希修饰符。 那么核心数据将认识到这个模型是不同的:

https://developer.apple.com/library/mac/documentation/cocoa/conceptual/CoreDataVersioning/Articles/vmUnderstandingVersions.html