首页 > 解决方案 > 如何等到云套件数据在iOS13中快速与核心数据同步

问题描述

在 iOS 13 引入后,我开发了基于核心数据的应用程序并实现了 iCloud 同步功能。

我启用了 iCloud 套件,NSPersistentCloudKitContainer而不是使用NSPersistentContainer并添加了几行代码来与 iCloud 同步核心数据。

同步工作正常。问题是当我卸载应用程序并重新安装应用程序时,它不会在第一次获取 iCloud 数据。我必须重新启动应用程序或打开另一个屏幕才能让 Core Data 与 iCloud 同步。无论如何我可以检查核心数据是否正在与 iCloud 同步或等到它完成同步?

谢谢。

标签: iosswiftcore-dataicloud

解决方案


没有公开 API 来获取所有 CKRecord 到 NSManagedObject 的同步完成处理程序。

此外,更新正在使用后台静默通知进行,因此我们可以随时期待任何更改。所以没有完成处理程序很好

下一步是什么

您可以创建一个属性来检查同步时间,就像日期一样,last sync happened to local record并检查lastModificationDateiCloud 中同一记录的(默认情况下 CKRecord 具有此属性)。

因此,每次启动应用程序时,如果需要任何更新,请手动检查所有记录,然后等待更新通知并继续检查同步状态

注意:请注意,如果来自任何其他设备的用户非常活跃并且正在插入或修改新记录,这可能会导致您的启动过程延迟。


推荐阅读