メソッドから取得したデータを使用して独自の GUI を使用して表示する、ゲーム内の Game Center リーダーボードがありますGKLeaderboard loadScoresWithCompletionHandler
。
GKScore reportScoresWithCompletionHandler
メソッドを使用して新しいスコアを報告します。私の問題は、ローカル プレーヤーの新しいハイ スコアを報告したときに、リーダーボード GUI (強制的loadScoresWithCompletionHandler
に呼び出される) を開いたときに、プレーヤーのスコアが更新されず、彼が倒したばかりの古いスコアが表示されることです。
しかし、ゲームを閉じて (強制終了ではなく)、再度開いて GUI を開くと、新しいスコアが表示されます。
これは、アプリの再開時にリセットされる GameKit で何らかの形式の内部キャッシュが行われている必要があることを示しています。アプリが再開すると、GC が authenticationHandler を呼び出して、プレーヤーを再認証したことを知らせてくれるので、そのメソッドの何かが設定されている内部キャッシュを消去する可能性がありますか?
これは、この問題が発生したことのないネイティブ GC ビュー コントローラーではなく、カスタム UI を使用して Game Center データを表示している、私が取り組んだ最初のゲームです。誰かがこれについて同様の経験をしたことがありますか?なぜGKLeaderboard loadScoresWithCompletionHandler
古いデータが得られるのか教えてもらえますか?