CoreData 到 CloudKit 迁移
CoreData to CloudKit migration
从 CoreData 迁移到 CloudKit 并保留所有用户数据的最佳方法是什么?
我想停用 Core-Data 并用 CloudKit 替换它,但用户有大量重要数据,应该以某种方式迁移。
还有很多 类 正在使用 CoreData 实体,它们不应该受到影响(除了 CRUD 操作)。
没有找到任何直接的指南。
我的解决方案草稿:
-检查用户是否有 CoreData
-加载内存中的所有CoreData对象
-将它们写入云端
-删除 CoreData 文件
它是否会按预期工作?
移除Core-Data后可以使用继承自NSManagedObject的类吗?
它会引起任何副作用吗?
所以不能用CloudKit替换CoreData,因为CloudKit不支持离线模式。
我找到了将我的 CoreData 与 CloudKit 同步的库,并且它按预期工作。
图书馆:https://github.com/mentrena/SyncKit
更新:甚至在发布之前就遇到了 SyncKit 的多个问题,并最终迁移到了 Firebase。在产品中运行良好。
自 WWDC19 以来发现此问题的任何人,CloudKit Apple 现在提供 CoreData 同步。
使用该技术的核心步骤是从NSPersistentContainer
切换到NSPersistentCloudKitContainer
您可以采取一些额外的步骤来允许后台同步。
可在此处找到完整的详细信息:https://developer.apple.com/documentation/coredata/mirroring_a_core_data_store_with_cloudkit
我还发现这篇文章是一个很好的参考:
从 CoreData 迁移到 CloudKit 并保留所有用户数据的最佳方法是什么?
我想停用 Core-Data 并用 CloudKit 替换它,但用户有大量重要数据,应该以某种方式迁移。 还有很多 类 正在使用 CoreData 实体,它们不应该受到影响(除了 CRUD 操作)。 没有找到任何直接的指南。
我的解决方案草稿:
-检查用户是否有 CoreData
-加载内存中的所有CoreData对象
-将它们写入云端
-删除 CoreData 文件
它是否会按预期工作?
移除Core-Data后可以使用继承自NSManagedObject的类吗? 它会引起任何副作用吗?
所以不能用CloudKit替换CoreData,因为CloudKit不支持离线模式。 我找到了将我的 CoreData 与 CloudKit 同步的库,并且它按预期工作。 图书馆:https://github.com/mentrena/SyncKit
更新:甚至在发布之前就遇到了 SyncKit 的多个问题,并最终迁移到了 Firebase。在产品中运行良好。
自 WWDC19 以来发现此问题的任何人,CloudKit Apple 现在提供 CoreData 同步。
使用该技术的核心步骤是从NSPersistentContainer
切换到NSPersistentCloudKitContainer
您可以采取一些额外的步骤来允许后台同步。
可在此处找到完整的详细信息:https://developer.apple.com/documentation/coredata/mirroring_a_core_data_store_with_cloudkit
我还发现这篇文章是一个很好的参考: