设备上的核心数据存储位置

时间:2014-03-16 00:32:37

标签: ios core-data icloud

我正在将应用转换为iCloud对核心数据的支持。在加载NSMangagedObjectContext之前,我喜欢访问元数据以确定起始模型版本。这告诉我在进行任何自动模型迁移之前的起始状态,这样我就可以解决版本之间的任何问题。为了获得我使用的元数据:

NSDictionary *sourceMetadata = [NSPersistentStoreCoordinator metadataForPersistentStoreOfType:nil URL:storeURL error:&error];

我的问题在于iCloud中的核心数据存储我不知道如何弄清楚设备上的文件URL,我可以在文档目录中看到它,但我不知道如何获取iOS告诉我路径。

有没有办法获取文件路径,或者我在考虑这个错误。

2 个答案:

答案 0 :(得分:0)

好吧,因为至少有一个人同意这是不可能的,我已经创建了NSPersistantStoreCoordinator而不允许迁移,而不是从当前模型版本中提取出来的错误。这可行,但似乎是一种倒退的方式。

答案 1 :(得分:0)

使用Core Data,您始终知道商店的位置,无论您是否使用iCloud。无论你告诉Core Data把它放在哪里。使用iCloud,Core Data会将事务日志写入iCloud容器,但持久存储仍然在您希望的任何位置。

当您致电addPersistentStoreWithType:configuration:URL:options:error:时,您提供了一个指示商店位置的文件网址。它就在那里。商店的位置没有iCloud魔力,无论你把它放在哪里。您可能在执行此操作之前调用了URLForUbiquityContainerIdentifier:,但这也为您提供了正常的文件URL。