2017-09-29 2 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에서이 함수를 호출해야합니다.

관련 문제