2017-09-29 10 views
0

iTunes Connectで既にすべての設定が正しく行われています。これは私が試みたものです:スイフト:リーダーボードの実装方法

func saveHighscore(number: Int){ 

    if GKLocalPlayer.localPlayer().isAuthenticated { 

     let scoreReporter = GKScore(leaderboardIdentifier: "This") 
     scoreReporter.value = Int64(number) 
     let scoreArray : [GKScore] = [scoreReporter] 

     GKScore.report(scoreArray, withCompletionHandler: nil) 

    } 

} 

func showLeaderBoard(){ 
    let viewController = self.view.window?.rootViewController 
    let gcvc = GKGameCenterViewController() 

    gcvc.gameCenterDelegate = self 

    viewController?.present(gcvc, animated: true, completion: nil) 


} 

func gameCenterViewControllerDidFinish(_ gameCenterViewController: GKGameCenterViewController) { 
    gameCenterViewController.dismiss(animated: true, completion: nil) 

} 

最後に私はsaveHighscore関数を呼び出しますが、動作しません。何が恋しいの?

答えて

0

プレーヤーを認証する必要があります。

func authPlayer(){ 
    let localPlayer = GKLocalPlayer.localPlayer() 
    localPlayer.authenticateHandler = { 
    (view, error) in 
     if view != nil{ 
      self.present(view!, animated: true, completion: nil) 
     } 
     else { 
      print(GKLocalPlayer.localPlayer().isAuthenticated) 
     } 
    } 

} 

beginでこの関数を呼び出す必要があります。