发布
社区首页 >问答首页 >如何在iOS13中等待云工具包数据与核心数据同步

如何在iOS13中等待云工具包数据与核心数据同步
EN

Stack Overflow用户
提问于 2020-03-30 10:33:01
回答 3查看 3.2K关注 0票数 13

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

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

同步工作得很好。问题是,当我卸载应用程序并重新安装应用程序时,它并不是第一次获取iCloud数据。我必须重新启动应用程序或打开另一个屏幕,才能让核心数据与iCloud同步。我是否可以检查核心数据是否与iCloud同步,或者等待它完成同步?

谢谢。

EN

回答 3

Stack Overflow用户

发布于 2020-06-03 05:48:01

没有公开用于使所有CKRecord与NSManagedObject同步的完成处理程序的API。

此外,更新是使用背景无声通知,所以我们可以期待任何时候的变化。所以没有完成处理程序是件好事。

下一步是什么

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

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

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

票数 5
EN

Stack Overflow用户

发布于 2020-09-11 08:15:17

目前,还没有为iCloud同步完成提供API。你能做的就是

  • ,您可以初始化NSPersistentCloudKitContainer并在应用程序开始时调用它的loadPersistentStores()。这将为您赢得足够的时间,您的数据将可用于您的内部屏幕。

您还可以监听本地存储中的远程更改,并相应地更新UI,如本Apple:https://developer.apple.com/documentation/coredata/consuming_relevant_store_changes中所述

票数 0
EN

Stack Overflow用户

发布于 2022-12-01 05:37:06

我必须重新启动应用程序或打开另一个屏幕,才能让核心数据与iCloud同步。

为了解决这个问题,我使用了一个NSManagedObjectContextObjectsDidChange事件的通知观察者。

当重新安装的应用程序第一次打开时,它显示为空屏幕,过了一段时间,当数据被同步时,通知被触发,页面被重新加载数据。

然而,当数据被同步时,我也找不到任何方法来等待和显示加载消息。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60928628

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档