У меня есть таблица лидеров Game Center в моей игре, которую я показываю с помощью собственного графического интерфейса, используя данные, полученные из метода GKLeaderboard loadScoresWithCompletionHandler
.Game Center Leaderboard только обновляется, когда приложение возобновляется
Я сообщаю о новых оценках, используя метод GKScore reportScoresWithCompletionHandler
. Моя проблема заключается в том, что когда я сообщаю новый высокий балл для местного игрока, когда я открываю свой графический интерфейс для лидеров (который заставляет loadScoresWithCompletionHandler
вызываться), оценка игрока не обновляется - он отображает старый, который он просто избил.
Но если я закрою (не убиваю) игру, а затем снова открою ее и снова открою GUI, эй-престо, будет показан новый балл.
Это говорит о том, что в GameKit должно быть какое-то внутреннее кэширование, которое возвращается, когда приложение возобновляется. Я действительно знаю, что при возобновлении приложения GC вызывает мой идентификаторHandler, чтобы сообщить мне, что он повторно аутентифицировал игрока, поэтому, возможно, что-то в этом способе стирает все внутренние кеширование?
Это первая игра, в которой я работал, где я показываю данные игрового центра, используя пользовательский интерфейс, а не собственный контроллер представления GC, с которым у меня никогда не было этой проблемы. Кто-нибудь имел с ним подобный опыт и мог рассказать мне, почему GKLeaderboard loadScoresWithCompletionHandler
дает мне старые данные?