【问题标题】:Is Core Data necessary for across device data synchronization with iCloud? [closed]与 iCloud 的跨设备数据同步是否需要 Core Data? [关闭]
【发布时间】:2021-09-22 02:40:52
【问题描述】:

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

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

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

【问题讨论】:

  • 你对“跨设备数据同步”的定义是什么?
  • “要求数据持久化”是什么意思?
  • 刚刚为问题添加了数据持久性和跨设备数据同步的定义。
  • 如果你打算使用NSPersistentCloudKitContainer类,你确实需要Core Data,因为它的record(for:)需要NSManagedObject

标签: ios swift core-data icloud cloudkit


【解决方案1】:

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

【讨论】:

  • 谢谢你,汤姆。这很有帮助,有助于我理解每个部分所扮演的角色。
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 2012-03-09
    • 1970-01-01
    • 2012-08-14
    • 2019-10-26
    • 1970-01-01
    • 1970-01-01
    • 2013-11-26
    • 2015-11-08
    相关资源
    最近更新 更多