2017-09-29 8 views
0

Bei iTunes Connect habe ich schon alles richtig eingerichtet. Das ist, was ich versucht:Swift: Wie implementiert man eine Rangliste?

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) 

} 

Schließlich ich die saveHighscore Funktion aufrufen, aber es funktioniert nicht. Was vermisse ich?

Antwort

0

Sie müssen den Player authentifizieren. Sie können dies mit dieser Funktion tun:

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

} 

Sie müssen diese Funktion am Anfang aufrufen.

Verwandte Themen