ローカルプレーヤーのスコアをpScoreに保存しようとしていますが、ブロックの後に変数が常に0に等しい場合、どうすればpScore:Intに "localPlayerScore!Completionハンドラ内に変数を格納するIOS Swift
let leaderBoardRequest = GKLeaderboard()
leaderBoardRequest.identifier = "leaderboard ID"
leaderBoardRequest.loadScoresWithCompletionHandler {
(scores, error) -> Void in
if (error != nil) {
print("Error: \(error!.localizedDescription)")
} else if (scores != nil) {
let localPlayerScore = leaderBoardRequest.localPlayerScore
self.pScore = Int(localPlayerScore!.value)
}
}
print("Local player's score: \(pScore)")
以前このサイトで無数の時間をカバーしていた古典的な非同期問題のように見えます。あなたの 'pScore'が設定されていないということではなく、' loadScoresWithCompletionHandler'がバックグラウンドでリクエストを行い、したがってすぐに戻ります。したがって、あなたのプリントは完了ハンドラの前に呼び出されます。印刷物を完成ハンドラ本体に移動して、検索した得点を印刷します。 – Hamish