如何强制iCloud在全新安装/首次启动时同步应用程序的数据?

问题描述

在我正在开发的游戏中,我已经实现了GKSavedGames,并且一切工作正常,但是如果卸载并重新安装游戏或将其安装在新设备上,则首次启动fetchSavedGamesWithCompletionHandler会返回0个已保存的游戏。

是否有一种方法可以强制iCloud将文件同步到设备?我尝试过等待并回想fetchSavedGamesWithCompletionHandler,但似乎无济于事。如果我立即重新启动该应用程序,则所有保存文件都可用。

解决方法

我对GKSavedGames并不熟悉,但是如果您使用CloudKit作为您帖子的标签所暗示的内容,那么以下方法可能会对您有所帮助。

  1. 在您的应用中,检查类型为UserDefault的{​​{1}}的名称是否为Date
  2. 如果lastUpdated的值为lastUpdated(它将在全新安装的设备上),则执行nil以获取所有记录。
  3. 获取记录后,使用新的CKQuery对象将lastUpdated设置为“现在”。
  4. 您将来可以使用Date()日期来检查过时的数据。例如,如果lastUpdated比现在的日期早lastUpdated天,则可以再次提取记录。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...