[英]Using Core Data, iCloud and CloudKit for syncing and backup and how it works together
我正处于创建应用程序的早期阶段,我想在其中保存、同步和备份数据。 该应用程序不会将任何文件仅存储在数据库中。 它将是 iOS 8 及更高版本,因此我可以使用 CloudKit。 我做了一些研究,但仍然不清楚 Core Data、iCloud 和 CloudKit 如何协同工作。
据了解,CloudKit 只是一种向/从云端获取和检索数据的方式。 CloudKit 只是一种与 iCloud 同步数据的不同方式吗?
我的问题是:
如果我使用 CloudKit,我还需要创建本地核心数据数据库吗?
如果数据仅存储在云中,则用户可以在 iOS 设备未连接到互联网时访问它。 我读到 CloudKit 只有有限的缓存。
如果有人可以分解每种技术在离线和在线保存和同步核心数据数据库的过程中所做的事情。
我目前的理解是:
Core Data 用于在本地存储数据
iCloud 同步数据并存储在云端
CloudKit 提供了在云中存储和管理数据的能力?
我希望我提供了足够的信息来解决这个问题。
就像这样:
如果您想将 CloudKit 与 Core Data 一起使用,您必须编写自己的自定义代码来在托管对象和 CloudKit 记录之间进行转换。 这并非不可能,但要编写更多代码。 它可能更可靠,但现在下定论还为时过早。
我写了一篇博文,从过去使用 Core Data 和 iCloud 的人的角度描述 CloudKit。
2016 年 6 月更新:根据NSPersistentStoreCoordinator
最新文档,与 iCloud 核心数据相关的所有内容都被标记为已弃用。 因此,新的开发可能应该避免使用它。
在 iOS 13 中,Apple 宣布了 Core Data 中的新功能,以更好地与 CloudKit 配合使用。 主要的新增功能是NSPersistentCloudKitContainer ,它基本上为您管理 Core Data 和 CloudKit 之间的同步。
您可以在 WWDC 会议将 Core Data 与 CloudKit 结合使用来了解更多信息。
Apple 还针对这种用法发布了一系列不错的文档: 使用 CloudKit 镜像核心数据存储。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.