0
ゲームに2つの言語があり、iTunes Connectに2つのリーダーボードがあります。言語を切り替えると、Game Centerで再認証し、その場でリーダーボードを変更します。私のコードは、ホームボタンでアプリを閉じてから再び開くと(アプリのスイッチャーから終了しないで)、他のリーダーボードのデータを読み込むので機能します。ただし、クローズ/再オープンしないと、新しいデータはロードされません。私は何とか再認証する必要があると思いますが、同じ認証コードを呼び出すのは仕事をしません。これらの追加Game Centerを再認証する方法は?
func authenticateLocalPlayer(after: Double) {
DispatchQueue.main.asyncAfter(deadline: .now() + after) {
localPlayer = GKLocalPlayer.localPlayer()
localPlayer.authenticateHandler = {(ViewController, error) -> Void in
if((ViewController) != nil) {
// Show login if player is not logged in
//self.present(ViewController!, animated: true, completion: nil)
} else if (localPlayer.isAuthenticated) {
// Get the default leaderboard ID
localPlayer.loadDefaultLeaderboardIdentifier(completionHandler: { (leaderboardIdentifer, error) in
if error != nil { print(error ?? "Error")
} else { gcDefaultLeaderBoard = leaderboardIdentifer! }
})
leaderboardRequest?.identifier = NSLocalizedString("Leaderboard ID".localized(lang: UserDefaults.standard.object(forKey: "Language") as! String), comment: "")
}
}
}
}