游戏中心排行榜得分仅在应用恢复时更新

时间:2015-01-22 12:42:53

标签: ios objective-c game-center leaderboard game-center-leaderboard

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

我使用GKScore reportScoresWithCompletionHandler方法报告新分数。我的问题是,当我报告本地玩家的新高分时,当我打开我的排行榜GUI(迫使loadScoresWithCompletionHandler被召唤)时,玩家得分不会被更新 - 它是'显示他刚刚击败的旧的。

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

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

这是我使用自定义用户界面显示游戏中心数据的第一个游戏,而不是我从未遇到此问题的原生GC视图控制器。有没有人有类似的经验,可以告诉我为什么GKLeaderboard loadScoresWithCompletionHandler给我旧的数据?

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题,它给了我一个不眠之夜,特别是在stackoverflow和其他论坛上看不到与之相关的答案。 然后,我发现某个地方,只要等级完成,他们就会报告新的分数。我将按钮从提交排行榜更改为显示排行榜,它解决了问题。我正在使用GC视图控制器。而我只是称为showleaderboard,因为它是一个非自定义排行榜。