게임 센터는 이전에 내가 만든 다른 앱을 사용하는 데 오래 전부터 사용되었습니다. 그러나 이상한 일들이 현재 약 2 주 동안 현재의 상황에서 일어나고 있습니다.게임 센터가 점수를 저장하지 않음
업로드 및 다운로드 보고서에 오류가 없으며 잘 점수를 볼 수 있습니다. 하지만 내 게임을 그만두고 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)")
}
})
}