游戏中心不保存分数
Posted
技术标签:
【中文标题】游戏中心不保存分数【英文标题】:Game Center Not Saving Scores 【发布时间】:2017-02-14 18:57:45 【问题描述】:Game Center 曾经在我制作的另一个应用程序中完美运行。然而,我现在的这个已经发生了大约两周的奇怪事情。
上传和下载报告没有错误,我可以看到我的分数很好。但是如果我停止玩我的游戏,然后在 6 小时后重新开始游戏,我的分数就不再存在于游戏中心。我的意思是,实际上根本没有得分。从 6 小时前运行的游戏中心下载现在无法检索我的分数。
游戏中心状态为实时。我可以在“管理分数”部分查看我的分数和其他分数。但是,除了GKGameCenterViewController
的排行榜中我的分数外,我什么都看不到。
就我而言,一切都已正确配置。应用中的 Game Center 功能已开启。
排行榜显示代码:
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)")
)
【问题讨论】:
【参考方案1】:好的,排行榜现在正在运行。我猜你只需要等人。
【讨论】:
以上是关于游戏中心不保存分数的主要内容,如果未能解决你的问题,请参考以下文章