试图测试排行榜。我这样做:
GKLeaderboard *leaderboardRequest = [[GKLeaderboard alloc] init];
if (leaderboardRequest != nil)
{
leaderboardRequest.playerScope = GKLeaderboardPlayerScopeGlobal;
leaderboardRequest.timeScope = GKLeaderboardTimeScopeAllTime;
leaderboardRequest.category = self.gameData.leaderboardId;
leaderboardRequest.range = NSMakeRange(1,10);
[leaderboardRequest loadScoresWithCompletionHandler: ^(NSArray *scores, NSError *error) {
if (error != nil)
{
// Handle the error.
}
if (scores != nil)
{
for (GKScore *score in scores) {
NSLog(@"score retrieved: %lld", score.value);
}
}
}];
}
我和用户 A 在一台设备上玩游戏,得到 137 分。当我查询排行榜时,我得到一个 137 分。我和用户 B 在另一台设备上玩,得分 243,当我查询排行榜时只得到 243 分。
那么为什么我只从登录的用户那里得到分数呢?显然我需要每个人的分数来创建自定义排行榜。我的理解是 GKLeaderboardPlayerScopeGlobal 应该检索所有分数,而不仅仅是本地用户的分数。