Core Data 是否需要与 iCloud 进行跨设备数据同步?

问题描述

借助 NSPersistentCloudKitContainer,开发者可以使用 Core Data 堆栈轻松地为他们的应用启用跨设备的数据同步。

对于一个需要本地数据持久化(客户端离线数据存储)和跨设备数据同步(数据可在 iPhone、iPad、macOS 上使用相同的 iCloud 帐户登录)的新应用程序,Core Data 仍然必需的? CloudKit 会被用作 Core Data 的替代品吗?

是否可以使用 CloutKit 跳过 Core Data 堆栈?

解决方法

CloudKit 仅用于传输。 Core Data 只是本地持久化。您可以一起使用它们,但也可以单独使用它们。如果您想使用 CloudKit 而不是 Core Data,您需要编写自己的代码来处理本地持久性。例如,您可以使用普通的 SQLite,并使用像 GRDB 这样的包装器来实现本地持久性。或者其他方式。有很多方法可以在应用程序上存储本地数据。但是,NSPersistentCloudKitContainer 是 Core Data 的一部分(这就是它与 CloudKit 一起工作的原因),因此您不会使用它。

,

似乎 CloudKit 是一种传输机制,并不打算用作本地存储或持久机制。如果有本地离线存储需要 Core Data 还是应该使用。