els*_*udo 7 iphone core-data core-data-migration ios mapping-model
所以我创建了一个新版本的数据模型,并使之前的可选字段非可选(给它一个默认值).根据文档,这应该意味着我的迁移符合轻量级自动迁移的条件.
我还添加了允许这样做的选项,当我打开商店时,也按照文档:
NSDictionary *options = [NSDictionary dictionaryWithObjectsAndKeys:
[NSNumber numberWithBool:YES], NSMigratePersistentStoresAutomaticallyOption,
[NSNumber numberWithBool:YES], NSInferMappingModelAutomaticallyOption, nil];
但是,当我的应用程序启动时,我收到以下错误:
"无法找到或自动推断迁移的映射模型".
有谁知道这里的问题是什么?任何帮助表示赞赏...谢谢!
您可能已经看过这个,但如果没有……检测轻量级核心数据迁移
就其他调试代码而言,我发现这很有帮助:
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 中,您可以为您的应用程序“显示包内容”,然后找到一个名为 .momd 的文件夹,其中有一个名为“VersionInfo.plist”的文件。这有助于确定您拥有什么以及您想要去哪里。
最后,您可以尝试创建一个映射模型,看看是否有效。我已经与迁移问题搏斗了好几个星期,因此有一长串绝望的调试尝试。
| 归档时间: | 
 | 
| 查看次数: | 6833 次 | 
| 最近记录: |