【发布时间】:2015-03-21 06:19:57
【问题描述】:
我的游戏中有一个 Game Center 排行榜,我使用自己的 GUI 使用从 GKLeaderboard loadScoresWithCompletionHandler 方法检索到的数据来显示它。
我使用GKScore reportScoresWithCompletionHandler 方法报告新分数。我的问题是,当我为本地玩家报告新的高分时,当我打开我的排行榜 GUI(这会强制调用 loadScoresWithCompletionHandler)时,玩家分数没有更新 - 它显示的是他刚刚击败的旧分数.
但是如果我关闭(而不是杀死)游戏,然后重新打开它并再次打开 GUI,嘿-presto,新的分数就会显示出来。
这告诉我,GameKit 中一定存在某种形式的内部缓存,当应用程序恢复时会被重置。我确实知道,在应用程序恢复时,GC 会调用我的 authenticationHandler 让我知道它已经重新验证了播放器,所以该方法中的某些东西可能会擦除设置的任何内部缓存?
这是我开发的第一款使用自定义 UI 而非原生 GC 视图控制器显示 Game Center 数据的游戏,我从未遇到过这个问题。有没有人有类似的经验,可以告诉我为什么GKLeaderboard loadScoresWithCompletionHandler 给我旧数据?
【问题讨论】:
标签: ios objective-c game-center leaderboard game-center-leaderboard