Задержка localPlayerScore в GKLeaderboard после сохранения GKScore
Я пытаюсь получить новый рейтинг в таблице лидеров после того, как набрал высокий балл, и обнаружил, что для GKLeaderboard
оценки для обновления. Я протестировал код на сборке Release (из Xcode), и задержка все еще существует.
let score = GKScore(leaderboardIdentifier: leaderboardId)
score.value = Int64(highScore)
GKScore.report([score]) { _ in
// Adding a 5 second delay here solves the problem.
let leaderboard = GKLeaderboard()
leaderboard.identifier = leaderboardId
leaderboard.loadScores { _, _ in
// leaderboard.localPlayerScore shows data from before saving the new score.
}
}
Есть ли способ обойти это? 5-секундная задержка кажется ненадежной. Может быть, как только приложение появится в App Store, этой задержки больше не будет? Я, вероятно, мог бы создать обходной путь, сохранив результаты до того, как пользователь начнет игру, и локально вычислит новый рейтинг, но общий код должен избегать необходимости в этом, верно?