从CoreData迁移到CloudKit并保留所有用户数据的最佳方法是什么?
我想退出Core-Data并将其替换为CloudKit,但是用户拥有大量重要数据,应该以某种方式进行迁移。 许多类正在使用CoreData实体,它们不应受到影响(CRUD操作除外)。 没有找到任何直截了当的指导原则。
我的解决方案草案:
- 检查用户是否具有CoreData
- 加载内存中的所有CoreData对象
- 将它们写入云端
- 删除CoreData文件
它能够按预期工作吗?
在删除Core-Data后,可以使用从NSManagedObject继承的类吗? 它会引起任何副作用吗?
答案 0 :(得分:3)
对于自WWDC19之后发现此问题的任何人,Apple现在都提供CloudKit CoreData同步。
使用此技术的核心步骤是从NSPersistentContainer
切换到NSPersistentCloudKitContainer
您可以采取一些其他步骤来允许后台同步。
详细信息可以在这里找到:https://developer.apple.com/documentation/coredata/mirroring_a_core_data_store_with_cloudkit
我也发现这篇文章是很好的参考:
答案 1 :(得分:1)
因此,CloudK不能被CloudKit取代,因为CloudKit不支持离线模式。 我找到了将我的CoreData与CloudKit同步的库,它的工作方式与预期的一样。 图书馆:https://github.com/mentrena/SyncKit
更新:在发布之前,SyncKit遇到了多个问题,最终迁移到了Firebase。生产工作正常。