在我的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似乎也没有效果!它始终列在排行榜列表中:(
提前感谢您的帮助! :)
答案 0 :(得分:0)
我知道这是在很久以前发布的,但我在我的项目中遇到了同样的问题。
你的代码没有问题,问题是iOS9的一个错误,Apple的官方论坛上有一个主题与其他人的投诉:https://forums.developer.apple.com/thread/15997。 他们都有同样的问题,显示一个特定的排行榜,但苹果没有正式答案。
我在iOS8的设备上尝试了我的游戏,显示特定的LeaderBoard没有问题。所以现在,没有什么可做的,直到Apple解决了这个问题(已经差不多一年了)。我还建议使用Apple bug记者,以便他们注意到这个问题。
iOS10更新:
iOS 10在显示特定排行榜时没有任何问题。看起来它仍然是iOS9的问题。