映射模型无处可寻(Cocoa Error 134140)

基本上,我有一个Versioned xcdatamodel ,我从V2迁移到V3

我创建了一个带有自定义策略的Mapping Model

一旦PersistenStoreCoordinator尝试完成它的工作,我遇到了Cocoa错误号134140(无法找到迁移的映射模型)

这个问题基本上和我一样,但我使用的是Xcode 4.6.3

我尝试过的事情:

  • 强制xcmappingmodel驻留在xcdatamodelId并确保我的映射模型的大小不是xcdatamodelId ,这是问题的答案
  • 从Xcode中删除xcdatamodelId引用并将其添加回来(回答这个问题)
  • 清理和清理构建文件夹选项

编辑如果有人有兴趣,这是我的调试声明…

 Handling DB Upgrade sourceMetadata is { NSPersistenceFrameworkVersion = 419; NSStoreModelVersionHashes = { OriginalPicture = ; PanoramicInfo = ; }; NSStoreModelVersionHashesVersion = 3; NSStoreModelVersionIdentifiers = ( "" ); NSStoreType = SQLite; NSStoreUUID = "F83640F3-8686-438F-97CC-48311EB74B9C"; "_NSAutoVacuumLevel" = 2; } Not Compatible Models Migration is NEEDED! SourceEntity: OriginalPicture:  DestinationEntity: OriginalPicture:  SourceEntity: PanoramicInfo:  DestinationEntity: PanoramicInfo:  The operation couldn't be completed. (Cocoa error 134140.) 

第二次编辑

我一直试图通过使用以下方式直接获取映射模型:

 NSURL *fileURL = [[NSBundle mainBundle] URLForResource:@"Update23Model" withExtension:@"cdm"]; 

但奇怪的是fileURL指向零……

那么如何将映射模型添加到捆绑包呢?

看起来像Xcode 4.6.3 bug … xcmappingmodel一定不能在任何组文件夹里面……

当我在xcode项目的根级别创建它时,IDE找到了映射。

这个答案会解决你的问题吗? 这个问题看起来很相似,如果它没有帮助就很抱歉。

如果测试设备的存储来自不再存在的数据模型版本,则会发生这种情况。

例如,我有数据模型版本7,然后我制作了数据模型版本8.我制作了一个从7到8的映射模型。然后我做了一些更改为8.当我打开该应用程序时,它会给出此错误,因为映射模型所基于的版本8不再存在。