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