NSManagedObjectModel -versionIdentifiers 的文档说,
Core Data 框架不为模型提供默认标识符,也不在运行时依赖该值。对于在 Xcode 中创建的模型,您可以在模型检查器中设置此值。
我不确定,但我认为设置版本标识符可能会在我对模型迁移策略类进行编码时有所帮助。有谁知道如何在 Xcode 中设置这些标识符?我已经探索了相当多的地方但没有成功。
Thanks.
好吧,这种方法最终对我没有帮助。我使用以下代码解决了核心数据迁移调试问题:
NSURL *storeUrl = [NSURL fileURLWithPath: [[self applicationDocumentsDirectory] stringByAppendingPathComponent: @"Spark.sqlite"]];
NSError *error = nil;
NSDictionary *sourceMetadata = [NSPersistentStoreCoordinator metadataForPersistentStoreOfType:NSSQLiteStoreType
URL:storeUrl
error:&error];
if (!sourceMetadata)
NSLog(@"sourceMetadata is nil");
else
NSLog(@"sourceMetadata is %@", sourceMetadata);
另一方面,我现在才找到了我原来问题的答案,fwiw。
如果您转到项目窗口并选择 .xcdatamodel 文件并“获取信息”,那么大多数时候您将获得“文件“Xxx.xcdatamodel”信息”窗口 - 包含“常规”、“目标”、“构建” ”和“评论”选项卡。 (是的,“大多数时候”部分让我感到困惑。)
但是,如果您再次选择 .xcdatamodel 文件并“获取信息”,您将(可能)得到一个非常不同的检查器 - 一个名为“数据模型“Xxx”信息”的检查器。该窗口有两个选项卡:“外观”和“版本控制”。版本控制选项卡允许您设置模型版本标识符。
底线:在 Xcode 中设置模型版本标识符类似于进入平台 9 3/4 - 但与 9 3/4 不同,一旦你到达那里,你并不清楚为什么你想要在那里。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)