如何强制 iCloud 在全新安装/首次启动时同步应用程序的数据?
Posted
技术标签:
【中文标题】如何强制 iCloud 在全新安装/首次启动时同步应用程序的数据?【英文标题】:How do I force iCloud to sync data of an App on fresh install / first launch? 【发布时间】:2020-09-23 05:49:15 【问题描述】:在我正在开发的游戏中,我已经实现了 GKSavedGames,并且一切正常,除了如果游戏被卸载并重新安装或安装在新设备上,第一次初始启动 fetchSavedGamesWithCompletionHandler
返回 0 个已保存的游戏。
有没有办法强制 iCloud 将文件同步到设备?我曾尝试等待和回忆fetchSavedGamesWithCompletionHandler
,但似乎没有任何效果。如果我立即重新启动应用程序,则所有保存文件都可用。
【问题讨论】:
【参考方案1】:我不熟悉GKSavedGames
,但是如果您使用 CloudKit 作为您的帖子标签所暗示的,那么以下方法可能会对您有所帮助。
-
在您的应用中,检查是否存在类型为
Date
的 UserDefault
,名称类似于 lastUpdated
。
如果lastUpdated
的值为nil
(它将在全新安装的设备上),则执行CKQuery
以获取所有记录。
获取记录后,使用新的Date()
对象将lastUpdated
设置为“现在”。
您可以在将来使用lastUpdated
日期来检查过时的数据。例如,如果 lastUpdated
与现在相比超过 n
天,您可以再次拉取记录。
【讨论】:
以上是关于如何强制 iCloud 在全新安装/首次启动时同步应用程序的数据?的主要内容,如果未能解决你的问题,请参考以下文章
CoreData 同步 iCloud 数据导致 App 启动超时被系统 watchdog 终止的原因及解决
CoreData 同步 iCloud 数据导致 App 启动超时被系统 watchdog 终止的原因及解决
App 启动时如何知道 CloudKit 的 iCloud 数据同步操作已经结束了?