iOS/MacOS - iCloud 警告 - 以 SharedCoreData 为基础的普遍性错误

Posted

技术标签:

【中文标题】iOS/MacOS - iCloud 警告 - 以 SharedCoreData 为基础的普遍性错误【英文标题】:iOS/MacOS - iCloud warning - Ubiquity Error with SharedCoreData as a base 【发布时间】:2012-11-16 04:20:08 【问题描述】:

我已尝试为自己的应用修改 Apple SharedCoreData 示例。

一切都(合理地)没问题,除了这个警告:

[NSPersistentStoreCoordinator addPersistentStoreWithType:configuration:URL:options:error:](1055): CoreData: Ubiquity:  
Error: A persistent store which has been previously added to a coordinator using the iCloud integration options must always be 
added to the coordinator with the options present in the options dictionary. 


If you wish to use the store without iCloud, migrate the data from the iCloud store file to a new store file in local storage. 
file://localhost/Users/david/Library/Containers/.../Data/Documents/SharedCoreDataStores/localStore.sqlite

This will be a fatal error in a future release.

有没有人遇到过这个问题,我该如何解决?

【问题讨论】:

这个人也遇到过,但还没有答案:***.com/questions/13343449/… 天哪 - 我没看到那个。我通过不使用本地商店绕过了这个问题,但这不是一个好的解决方案。我必须弄清楚如何创建一个 iCloud 将参与的新商店。 【参考方案1】:

当您看到此错误时,您正在添加包含 iCloud 元数据的存储文件, 表示该文件已添加到 iCloud。

您应该在添加 iCloud Store 时添加选项:

        NSDictionary *options =
        @  NSMigratePersistentStoresAutomaticallyOption:@(YES),
        NSInferMappingModelAutomaticallyOption      :@(YES),
        NSPersistentStoreUbiquitousContentNameKey   :self.iCloudCoreDataContentName,
        NSPersistentStoreUbiquitousContentURLKey    :self.iCloudCoreDataContentURL;

self.iCloudCoreDataContentName(需要)是您想要的任何名称,iCloud 商店,名称

self.iCloudCoreDataContentURL(可选)定位iCloud容器中的核心数据传输日志

此 URL 应该是 iCloud 容器的子目录,例如 [[NSFileManager URLForUbiquityContainer:nil] URLByAddingComponent:@"CoreDataLogs"].

此属性在选项中是可选的。如果省略它,iCloud CoreData 内容 URL 将为 [NSFileManager URLForUbiquityContainer:nil]

有关您应该注意的 URL 和名称的更多详细信息: Xcode - "The provided ubiquity name is already in use" - how do I find a folder

如果您想将 iCloud 商店转为本地商店,您可以在以下位置查看我的答案: How can I migrate the data from the iCloud store file to a new store file in local storage?

【讨论】:

非常感谢您。并将代码从云端转移到本地。做得好。在您提供帮助的同时,您是否介意也看看这个问题:***.com/questions/13906812/…

以上是关于iOS/MacOS - iCloud 警告 - 以 SharedCoreData 为基础的普遍性错误的主要内容,如果未能解决你的问题,请参考以下文章

iCloud 集成中的警告

IOS/macOS安全相关资料的收集

以编程方式访问 iCloud 音乐库下载和 iCloud 状态

如何在 Swift 中以编程方式打开 icloud 应用程序(文件)

iOS:以编程方式阻止 iCloud 备份

ios icloud 在设备中以编程方式设置开/关