我正在尝试执行需要MappingModel的iOS Core Data迁移。由于某些原因,核心数据无法使用映射模型,并且它会回到自动轻量级迁移。找不到适用于核心数据迁移的合适映射模型
我启用了MigrationDebug选项来获取更多信息,而我所看到的没有意义。映射模型的源哈希和目标哈希是相同的,忽略顺序,源和目标ManagedObjectModels。看来应该使用映射模型,但是日志说“找不到合适的映射模型”。
这里是(省略掉)日志:
CoreData: annotation: (migration) will attempt automatic schema migration
CoreData: annotation: (migration) looking for mapping model with
source hashes:
{
TSBaseEntity = <4797118c 50068f2f f544d9a9 4884720b 55ec7e4d 0d4c8f4e 1ee44be3 b06d2edc>;
TSBuyer = <91e837d1 3f348913 eff634d6 6fb9b3a6 747e2390 fbdc4ae6 32cc56d6 7582d4a8>;
...
}
destination hashes: {
TSBaseEntity = <4797118c 50068f2f f544d9a9 4884720b 55ec7e4d 0d4c8f4e 1ee44be3 b06d2edc>;
TSBuyer = <e316a857 8919c4be eef15387 5c67a21b 67d32919 99ead438 1ff93c05 2e065fcc>;
...
}
CoreData: annotation: (migration) checking mapping model at path file://localhost/Users/xandrews/Library/Application%20Support/iPhone%20Simulator/6.1/Applications/0A84951E-21FC-47C0-A1B7-F880ACB672C4/Dev.app/Migrate_0_5_24To_0_5_27.cdm
source hashes:
{(
<4797118c 50068f2f f544d9a9 4884720b 55ec7e4d 0d4c8f4e 1ee44be3 b06d2edc>,
<91e837d1 3f348913 eff634d6 6fb9b3a6 747e2390 fbdc4ae6 32cc56d6 7582d4a8>,
...
)}
destination hashes: {(
<4797118c 50068f2f f544d9a9 4884720b 55ec7e4d 0d4c8f4e 1ee44be3 b06d2edc>,
<e316a857 8919c4be eef15387 5c67a21b 67d32919 99ead438 1ff93c05 2e065fcc>,
...
)}
CoreData: annotation: (migration) no suitable mapping model found
CoreData: annotation: (migration) inferring a mapping model between data models with
source hashes: ...
所以我们不能在Xcode 4.6.2中使用迁移工具,因为它会生成错误的文件? – 2013-07-04 08:06:47
我不知道这是否是解决方案,但它肯定是一种解决方案。使用由Xcode 5 DP4生成的文件为我工作。 – 2013-08-01 17:24:49
对于Xcode 4,请尝试[此答案](http://stackoverflow.com/a/9428260/1402846)。 – Pang 2013-09-22 07:49:34