2017-02-14 51 views
0

游戏中心以前用于完成我完成的另一个应用程序完美。然而,现在大约两周的时间里,我现在正在发生奇怪的事情。游戏中心不保存得分

上传和下载报告没有错误,我可以看到我的分数很好。但是如果我停止玩我的比赛,然后6小时后回来,我的比分不再存在于游戏中心。我的意思是,根本没有得分。从6小时前工作的游戏中心下载现在无法检索我的分数。

游戏中心状态为现场。我可以在“管理分数”部分看到我的分数和其他人。然而,除了我在GKGameCenterViewController排行榜上的分数,我什么都看不到。

就我而言,一切都已正确配置。游戏中心的应用程序功能已启用。

代码显示排行榜:

func showLeaderBoard() { 
    if GKLocalPlayer.localPlayer().isAuthenticated == false { 
     self.present(authenticationViewController!, animated: true, completion: nil) 
     return 
    } 

    let gamecenter = GKGameCenterViewController() 
    gamecenter.gameCenterDelegate = self 
    gamecenter.viewState = .leaderboards 
    gamecenter.leaderboardIdentifier = leaderBoardID 

    present(gamecenter, animated: true, completion: nil) 
} 

代码下载分数:

func downloadBestScoreFromGameCenter() { 
    if GKLocalPlayer.localPlayer().isAuthenticated == false {return} 
    print("Downloading Score...") 

    let leaderBoard = GKLeaderboard() 
    leaderBoard.identifier = leaderBoardID 
    leaderBoard.loadScores(completionHandler: { 
     [unowned self] (scores, error) in 

     print("Download Error: \(error)") 

     scores?.forEach({print("\($0.player?.displayName!) \($0.value)")}) 

     if let localPlayerScore = leaderBoard.localPlayerScore?.value { 
      self.bestScore = Int(localPlayerScore) 
      self.saveGameForCurrentState() 
     } else { 
      self.bestScore = 0 
     } 
    }) 
} 

和上传

func uploadBestScoreToGameCenter() { 
    if GKLocalPlayer.localPlayer().isAuthenticated == false {return} 

    let scoreItem = GKScore(leaderboardIdentifier: leaderBoardID) 
    scoreItem.value = Int64(self.bestScore) 

    GKScore.report([scoreItem], withCompletionHandler: { 
     (error) in 
     if let error = error { 
      print(error) 
     } else { 
      print("Upload complete: \(scoreItem.value)") 
     } 
    }) 
} 

回答

0

确定了领先现如今工作。我想你只能等人。