ios - 如何等到云套件数据在iOS13中快速与核心数据同步
问题描述
在 iOS 13 引入后,我开发了基于核心数据的应用程序并实现了 iCloud 同步功能。
我启用了 iCloud 套件,NSPersistentCloudKitContainer
而不是使用NSPersistentContainer
并添加了几行代码来与 iCloud 同步核心数据。
同步工作正常。问题是当我卸载应用程序并重新安装应用程序时,它不会在第一次获取 iCloud 数据。我必须重新启动应用程序或打开另一个屏幕才能让 Core Data 与 iCloud 同步。无论如何我可以检查核心数据是否正在与 iCloud 同步或等到它完成同步?
谢谢。
解决方案
没有公开 API 来获取所有 CKRecord 到 NSManagedObject 的同步完成处理程序。
此外,更新正在使用后台静默通知进行,因此我们可以随时期待任何更改。所以没有完成处理程序很好
下一步是什么
您可以创建一个属性来检查同步时间,就像日期一样,last sync happened to local record
并检查lastModificationDate
iCloud 中同一记录的(默认情况下 CKRecord 具有此属性)。
因此,每次启动应用程序时,如果需要任何更新,请手动检查所有记录,然后等待更新通知并继续检查同步状态
注意:请注意,如果来自任何其他设备的用户非常活跃并且正在插入或修改新记录,这可能会导致您的启动过程延迟。
推荐阅读
- python - 如何使用 Python asyncio 在 asyncpg API 上实现同步外观?
- swift - Swift:.contains(where:) 使用键路径表达式
- python - 如何用python打印数字n ... 0?
- php - php artisan red 错误消息的完整日志在哪里
- c++ - 将神经网络层内核组合成一个内核 CUDA
- c - Python C API ImportError“很可能是由于循环导入”
- mips - 如何将字符保存在 mips 的寄存器中?
- python - 递归二分查找,通过切片进行分类
- vba - 将附件保存到本地文件夹
- python - 如何使用具有空白行的列写入 CSV 文件