CloudKit 离线存储
Posted
技术标签:
【中文标题】CloudKit 离线存储【英文标题】:CloudKit offline storage 【发布时间】:2017-05-18 20:16:32 【问题描述】:我正在开发使用 CloudKit 的 ios 应用程序。我很清楚如何在设备上请求时从云端下载/上传数据。当存在互联网连接时,它工作得很好。我正在考虑允许用户离线访问他们的数据。经过简短的研究,我发现 CoreData 与 iCloud 的集成在最近的 Xcode 版本中已被贬低。我在 github 上发现了一些第三方 pod,它们可以通过将核心数据从设备同步到 iCloud 来解决这个问题。由于可能的数据丢失或其他问题,我对使用这些插件有点怀疑。贬值 CloudKit 是为了摆脱离线存储的想法吗?我现在想做什么......我应该尝试在核心数据和 iCloud 之间创建某种同步,还是根本不使用核心数据,只让用户仅在在线连接可用时访问数据。这种方法将节省设备存储空间,但仅限于在线访问数据。有什么建议吗?
【问题讨论】:
CloudKit 未被弃用。 Core Data 与 iCloud 的集成已被弃用,但这不是一回事。 Core Data 从未与 CloudKit 集成过,因此没有什么可弃用的。 是的,这正是我所说的“与 iCloud 集成” CloudKit 是 iCould 的一部分。我不知道你为什么说没有什么可以贬值的。无论如何,您有什么建议或建议吗? 我想这就是我要找的东西:developer.apple.com/library/content/documentation/… @KirillC 我相信你是对的,一直在看同样的东西,指南真的很糟糕。如果您准备好使用第三方库,也许 EVCloudKitDao (cocoapods.org/pods/EVCloudKitDao) 看起来很有希望,尽管我还没有尝试过。但是,它允许缓存,这可能是您需要的,尽管它没有明确提及离线功能。 另一种方法是使用 iCloud 键值存储 (developer.apple.com/library/content/documentation/General/…),这有点像使用 NSUserDefaults 但在 iCloud 中,所以如果你熟悉它,那么它很容易处理并且它离线时自动缓存,当用户再次在线时跨设备同步。缺点是您只能拥有非常有限和简单的数据(想想应用程序设置),并且同步不是即时的,它由 iCloud 在后台自动处理。 【参考方案1】:CoreData 与 iCloud 的集成并未贬值,以下是来自 Apple 的一些参考资料:
Setting up core data with CloudKit Syncing a core data store with CloudKit Mirroring a core data store with CloudKit WWDC 2019 - Using Core Data With CloudKit【讨论】:
以上是关于CloudKit 离线存储的主要内容,如果未能解决你的问题,请参考以下文章