在游戏中心显示特定排行榜?

时间:2016-01-29 05:56:23

标签: ios9 game-center leaderboard

在我的iOS9项目中,我总共有8个与Game Center相关的排行榜。我可以加载所有排行榜的列表(这对于我的应用程序中的另一部分来说很棒);但是,我还希望能够加载一个特定的排行榜。这是我正在使用的代码:

 @IBAction func showLeaderboard() {
    if savedSettings["difficulty"] == 0 {
        print("Easy")
        if savedSettings["gameLanguage"] == 0 {
            leaderboardID = "Colorific_English_High_Scores"
            print("english")
        } else if savedSettings["gameLanguage"] == 1 {
            leaderboardID = "Colorific_Spanish_High_Scores"
        } else {
            leaderboardID = "Colorific_French_High_Scores"
        }
    } else {
        if savedSettings["gameLanguage"] == 0 {
            leaderboardID = "Colorific_English_High_Scores_Hard"
        } else if savedSettings["gameLanguage"] == 1 {
            leaderboardID = "Colorific_Spanish_High_Scores_Hard"
        } else {
            leaderboardID = "Colorific_French_High_Scores_Hard"
        }
    }
    let gcVC: GKGameCenterViewController = GKGameCenterViewController()
    gcVC.leaderboardIdentifier = leaderboardID
    gcVC.gameCenterDelegate = self

    gcVC.viewState = GKGameCenterViewControllerState.Leaderboards

    self.presentViewController(gcVC, animated: true, completion: nil)
}

不幸的是,更新leaderboardIdentifier似乎没有任何效果。所有排行榜的列表似乎总是显示出来。实际上......甚至将viewState更改为GKGameCenterViewControllerState.Achievements似乎也没有效果!它始终列在排行榜列表中:(

提前感谢您的帮助! :)

1 个答案:

答案 0 :(得分:0)

我知道这是在很久以前发布的,但我在我的项目中遇到了同样的问题。

你的代码没有问题,问题是iOS9的一个错误,Apple的官方论坛上有一个主题与其他人的投诉:https://forums.developer.apple.com/thread/15997。 他们都有同样的问题,显示一个特定的排行榜,但苹果没有正式答案。

我在iOS8的设备上尝试了我的游戏,显示特定的LeaderBoard没有问题。所以现在,没有什么可做的,直到Apple解决了这个问题(已经差不多一年了)。我还建议使用Apple bug记者,以便他们注意到这个问题。

iOS10更新:

iOS 10在显示特定排行榜时没有任何问题。看起来它仍然是iOS9的问题。