核心数据轻量级迁移:无法find或自动推断迁移的映射模型

所以我创build了我的数据模型的一个新版本,并做了一个以前的可选字段非可选(给它一个默认值)。 根据文档,这应该意味着我的迁移有资格进行轻量级的自动迁移。

我还添加了这样的选项,当我打开商店时,也可以根据文档:

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

但是,当我的应用程序启动时,出现以下错误:“无法find或自动推断迁移的映射模型”。

有谁知道这里的问题可能是什么? 任何帮助表示赞赏…谢谢!

你可能看了这个,但如果不是的话… 检测轻量级核心数据迁移

在其他debugging代码方面,我发现这有帮助:

  NSURL *storeUrl = [NSURL fileURLWithPath: [[self applicationDocumentsDirectory] stringByAppendingPathComponent: @"MyDataStore.sqlite"]]; NSError *error = nil; NSDictionary *sourceMetadata = [NSPersistentStoreCoordinator metadataForPersistentStoreOfType:NSSQLiteStoreType URL:storeUrl error:&error]; if (!sourceMetadata) { DLog(@"sourceMetadata is nil"); } else { DLog(@"sourceMetadata is %@", sourceMetadata); } 

最后,这是一种痛苦,但在Finder中,您可以为应用程序“显示包装内容”,然后find一个名为.momd的文件夹,其中包含一个名为“VersionInfo.plist”的文件。 这有助于确定你有什么和你想去的地方。

最后,你可以尝试创build一个映射模型,看看是否有效。 我已经与几周的迁移问题纠缠在一起了,因此,绝望的debugging尝试的名单很长。