如何等待云套件数据与 iOS13 中的 swift 核心数据同步

Mob*_*tar 10 core-data ios icloud swift

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

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

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

谢谢。

Sar*_*ith 5

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

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

下一步是什么

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

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

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