1

メソッドから取得したデータを使用して独自の GUI を使用して表示する、ゲーム内の Game Center リーダーボードがありますGKLeaderboard loadScoresWithCompletionHandler

GKScore reportScoresWithCompletionHandlerメソッドを使用して新しいスコアを報告します。私の問題は、ローカル プレーヤーの新しいハイ スコアを報告したときに、リーダーボード GUI (強制的loadScoresWithCompletionHandlerに呼び出される) を開いたときに、プレーヤーのスコアが更新されず、彼が倒したばかりの古いスコアが表示されることです。

しかし、ゲームを閉じて (強制終了ではなく)、再度開いて GUI を開くと、新しいスコアが表示されます。

これは、アプリの再開時にリセットされる GameKit で何らかの形式の内部キャッシュが行われている必要があることを示しています。アプリが再開すると、GC が authenticationHandler を呼び出して、プレーヤーを再認証したことを知らせてくれるので、そのメソッドの何かが設定されている内部キャッシュを消去する可能性がありますか?

これは、この問題が発生したことのないネイティブ GC ビュー コントローラーではなく、カスタム UI を使用して Game Center データを表示している、私が取り組んだ最初のゲームです。誰かがこれについて同様の経験をしたことがありますか?なぜGKLeaderboard loadScoresWithCompletionHandler古いデータが得られるのか教えてもらえますか?

4

1 に答える 1

0

私は同じ問題を抱えていましたが、特にスタックオーバーフローや他のフォーラムでそれに関連する回答が見られず、眠れぬ夜になりました。その後、レベルが完了するたびに新しいスコアが報告されていることをどこかで見つけました。そして、ボタンをリーダーボードの送信からリーダーボードの表示に変更したところ、問題は解決しました。私はGCビューコントローラーを使用しています。非カスタムリーダーボードであるため、showleaderboardのみを呼び出していました。

于 2015-06-16T18:06:05.823 に答える