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: "")
}
}
}
}