游戏中心排行榜不工作(“没有分数”)

时间:2015-10-18 16:16:25

标签: ios ios9 xcode7 game-center game-center-leaderboard

现在我已经完成了我的游戏制作,我需要添加的是应用内购买和排行榜,并且不会搞砸我用测试应用程序做的任何事情。我的排行榜现在正在显示,即使我在测试时登录游戏中心(在真实设备和模拟器上),在查看排行榜时我得到“没有分数”。但我的代码很好,我已经经历了几天的苹果文档和其他教程。但所有教程都已过时,苹果文档在某些特定事项上还不清楚。但我认为我的代码很好:

let HighscoreDefault = NSUserDefaults.standardUserDefaults()
    if (HighscoreDefault.valueForKey("highScore") != nil){

        highScore = HighscoreDefault.valueForKey("highScore") as! NSInteger
    }
    else {

        highScore = 0
    }

    if (score > highScore){

        let HighscoreDefault = NSUserDefaults.standardUserDefaults()
        HighscoreDefault.setValue(score, forKey: "highScore")
        highScore = HighscoreDefault.valueForKey("highScore") as! NSInteger
        saveScore(score)
    }

这就是我在游戏中的分数保存方法,这就是我将其上传到排行榜的方式:

    func saveScore(score: Int){
    let player = GKLocalPlayer()
    if player.authenticated == true {

        let scoreReporter = GKScore(leaderboardIdentifier: "testingleaderboard101") //leaderboard id here

        scoreReporter.value = Int64(highScore) //score variable here (same as above)

        let scoreArray: [GKScore] = [scoreReporter]

        GKScore.reportScores(scoreArray, withCompletionHandler: {(error : NSError?) -> Void in
            if error != nil {
                print("error")
            } else {
                print("reported correctly")
            }
        })

    }
}

我很确定错误不在这里,但我发布以防万一。

这是我在记录器中得到的东西:

插件com.apple.GameCenterUI.GameCenterDashboardExtension无效

2 个答案:

答案 0 :(得分:3)

let player = GKLocalPlayer()

应该是:

let player = GKLocalPlayer.localPlayer()

检查"访问共享的本地播放器" iOS Developer Library的GKLocalPlayer类参考文档中的部分。

我试着把它放在评论中,但我没有足够的积分。有特权的人请这样做。

答案 1 :(得分:2)

我修复了它,ios 9中的一些错误导致GKLocalPlayer()。即使玩家已登录,也会通过身份验证返回false。所以在savecore函数中,不要检查玩家是否经过身份验证