1

我的游戏中有一个 Game Center 排行榜,我使用自己的 GUI 使用从该GKLeaderboard loadScoresWithCompletionHandler方法检索到的数据来显示该排行榜。

GKScore reportScoresWithCompletionHandler我使用该方法报告新分数。我的问题是,当我为本地玩家报告新的高分时,当我打开我的排行榜 GUI(强制loadScoresWithCompletionHandler调用)时,玩家分数没有更新 - 它显示的是他刚刚击败的旧分数。

但是,如果我关闭(而不是杀死)游戏,然后重新打开它并再次打开 GUI,嘿-presto,新的分数就会显示出来。

这告诉我,GameKit 中必须有某种形式的内部缓存在应用程序恢复时被重置。我确实知道,在应用程序恢复时,GC 会调用我的 authenticationHandler 让我知道它已经重新验证了播放器,所以也许该方法中的某些东西会擦除设置的任何内部缓存?

这是我开发的第一款使用自定义 UI 而非原生 GC 视图控制器显示 Game Center 数据的游戏,我从未遇到过这个问题。有没有人有类似的经验,可以告诉我为什么GKLeaderboard loadScoresWithCompletionHandler给我旧数据?

4

1 回答 1

0

我遇到了同样的问题,这让我一夜无眠,尤其是在 stackoverflow 和其他论坛上没有看到与此相关的答案。然后,我在某个地方发现他们在关卡完成时报告新分数。我将按钮从提交排行榜更改为显示排行榜,它解决了这个问题。我正在使用 GC 视图控制器。我只打电话给 showleaderboard,因为它是一个非自定义排行榜。

于 2015-06-16T18:06:05.823 回答