我正在将应用转换为iCloud对核心数据的支持。在加载NSMangagedObjectContext之前,我喜欢访问元数据以确定起始模型版本。这告诉我在进行任何自动模型迁移之前的起始状态,这样我就可以解决版本之间的任何问题。为了获得我使用的元数据:
NSDictionary *sourceMetadata = [NSPersistentStoreCoordinator metadataForPersistentStoreOfType:nil URL:storeURL error:&error];
我的问题在于iCloud中的核心数据存储我不知道如何弄清楚设备上的文件URL,我可以在文档目录中看到它,但我不知道如何获取iOS告诉我路径。
有没有办法获取文件路径,或者我在考虑这个错误。
答案 0 :(得分:0)
好吧,因为至少有一个人同意这是不可能的,我已经创建了NSPersistantStoreCoordinator而不允许迁移,而不是从当前模型版本中提取出来的错误。这可行,但似乎是一种倒退的方式。
答案 1 :(得分:0)
使用Core Data,您始终知道商店的位置,无论您是否使用iCloud。无论你告诉Core Data把它放在哪里。使用iCloud,Core Data会将事务日志写入iCloud容器,但持久存储仍然在您希望的任何位置。
当您致电addPersistentStoreWithType:configuration:URL:options:error:
时,您提供了一个指示商店位置的文件网址。它就在那里。商店的位置没有iCloud魔力,无论你把它放在哪里。您可能在执行此操作之前调用了URLForUbiquityContainerIdentifier:
,但这也为您提供了正常的文件URL。