【发布时间】:2017-08-06 20:05:27
【问题描述】:
我目前正在学习如何使用 CloudKit 框架,但缺乏说明如何同步 Core Data 和 CloudKit 的文档或示例。
我看过所有专门用于 CloudKit 的 WWDC 视频(2014、2015、2016),但没有一个告诉我们如何实现与 Core Data 的同步。我找不到任何新的示例、教程或书籍来展示如何实现这种同步。
我知道使用 CloudKit 的 Operations API(不是 Convenience API)并订阅更改是有效的,正如它在专门用于 CloudKit 的新 WWDC 2016 视频中所说,但与 CoreData 的映射是一个真正的问题。
例如,假设我想创建一个类似于 Notes 应用的应用。离线时,用户可以创建他的笔记并使用它们将它们保存到他的核心数据库中。当设备上线时,应用程序会检查服务器上发生的变化并将新创建的记录保存到服务器(CloudKit)。
当应用程序启动时,它还会从 CloudKit 获取更改,如果有更改,它会使用新的更改更新本地缓存(核心数据)。
我希望有一个通用的同步模式。与 Core Data 方法同步的位置以及它们应该是什么样子的?
不胜感激有关此的任何信息或帮助。
我正在使用 Swift 3、Xcode 8、iOS 10。
【问题讨论】:
-
Adelmaer,cloudkit 存储有关它拥有的记录、上次更新、上次访问、权限等的元数据。您可以将此数据复制到您的核心数据中,并在连接时进行交叉检查以查看您是否有任何更新。你也应该看看这个 SO 答案,可能是这里的东西stackoverflow.com/questions/24509782/…
标签: core-data swift3 ios10 cloudkit ckoperation