如果没有将iCloud选项传递给" addPersistentStore"有没有办法将最初使用iCloud创建的sqlite数据库添加到NSPersistentStoreCoordinator。调用
我知道数据存在于文件中,但是如果没有首先加载启用iCloud的持久存储,我无法弄清楚如何获取数据。这样做的问题是我正在处理的应用程序中的iCloud实现完全拙劣,我宁愿完全避免使用iCloud(实际上我不确定它甚至是一个选项)。在iOS6中,您曾经能够以这种方式访问商店,只读#34;基础但公平地说,它确实警告说,这将成为未来的致命错误。在将来(iOS7)它不起作用,只是警告我没有用于创建它的相同选项(即iCloud)无法访问容器。实际上在我的情况下,应用程序似乎创建了一个全新的商店,并完全忽略了我指向它的sqlite文件这一事实。相反,它会在" CoreDataUbiquitySupport"中创建一个新商店。文件夹中。
我的sqlite文件位于" Documents"目录(而不是.nosync文件夹中)。我想要做的就是访问这个文件,好像它不是一个iCloud商店。
有什么想法吗?
答案 0 :(得分:1)
我能够通过使用"解决方案2"的修改版本来实现这一点。这个问题的答案的一部分:How can I migrate the data from the iCloud store file to a new store file in local storage?
不同之处在于,我没有将iCloudStore添加到PersistentStoreCoordinator,而是使用NSPersistentStore的getMetadata和setMetadata方法,这些方法允许我操作元数据(并删除普遍存在的密钥),而不必先添加持久存储。