核心数据迁移 - 无法找到迁移的映射模型

时间:2011-03-20 16:45:22

标签: iphone objective-c core-data data-migration mapping-model

我按照这里的指南: http://www.timisted.net/blog/archive/core-data-migration/ 但是当我使用新模型启动应用程序时,不断获得“无法找到迁移的映射模型”。我已经多次尝试过xcode 3和xcode 4,但是永远无法让它工作。

目前我的选项设置为:

NSDictionary *options = [NSDictionary dictionaryWithObjectsAndKeys:
    [NSNumber numberWithBool:YES], NSMigratePersistentStoresAutomaticallyOption,
    [NSNumber numberWithBool:NO], NSInferMappingModelAutomaticallyOption,
    nil];

我之前为推断选项设置了YES,但之后只是迁移而没有调用我需要迁移的自定义策略,我认为这是因为它之前无法找到映射模型。

我的地图模型没有被提取的任何原因?我通过检查它的SVN版本,仔细检查了以前的模型没有进行任何更改。

感谢。

4 个答案:

答案 0 :(得分:8)

原来,映射模型需要成为.xcdatamodeld包的一部分,这在xcode 4中是不可能的。在那里,它很有效。

注意:我的映射文件再次停止工作,我发现它在光盘上是0KB,所以我不得不重新创建它,之后它工作正常。我很快就投入了,并会看到它是否会再次消失。问题是Xcode 4对它进行了索引,所以它在xcode中看起来很好但在文件系统上它是空的。

请参阅下面的评论,原因是(xcode 4的mapc(地图编译器)已损坏)。

**这已经在新的XCODE / SDK中得到了修复。**

答案 1 :(得分:4)

我遇到了类似的问题:

Custom Policy in my xcmappingmodel will not be executed

在我的情况下它没有被执行,因为我的迁移没有对表做任何更改 - 也许这也是你的问题。

答案 2 :(得分:2)

确保将源数据模型设置为旧版本,将目标设置为新版本...当这些模型向后时,我收到了上述错误。

答案 3 :(得分:0)

您需要创建新版本的架构,而不是更改当前版本。假设你已经这样做了,对模型做了哪些改变?有些变化太激烈,无法可靠推断。