游戏中心不保存分数

时间:2017-02-14 18:57:46

标签: ios swift xcode game-center game-center-leaderboard

游戏中心以前曾为我制作的其他应用程序完美地工作。然而,现在我现在正在发生奇怪的事情大约两个星期。

上传和下载报告没有错误,我可以看到我的分数很好。但是如果我停止玩我的游戏然后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)")
        }
    })
}

1 个答案:

答案 0 :(得分:0)

好的排行榜现在正在运作。我猜你只需等人。