1

如何检索 GKLeaderboard 的所有分数?(我正在制作自己的排行榜图形)。我需要知道某个排行榜中的分数数量,但似乎没有办法轮询 GC 来获取此类信息?

http://developer.apple.com/library/ios/#documentation/NetworkingInternet/Conceptual/GameKit_Guide/LeaderBoards/LeaderBoards.html#//apple_ref/doc/uid/TP40008304-CH6-SW14

4

3 回答 3

1

我感觉答案是 GKLeaderboard 的 maxRange 属性。文档:

在调用 loadScoresWithCompletionHandler: 完成之前,此属性无效。之后,它包含给定您应用于查询的过滤器可返回到您的游戏的条目总数。

http://developer.apple.com/library/ios/documentation/GameKit/Reference/GKLeaderboard_Ref/Reference/Reference.html#//apple_ref/occ/instp/GKLeaderboard/maxRange

所以这将是排行榜表视图中的行数。

于 2012-09-18T13:53:28.477 回答
0

为了获得所有分数,您需要使用 Scar 详细说明的范围分块请求它们。通常在游戏中,您会显示 100 个子集,并为用户提供查看较低子集或较高子集的选项。

于 2013-01-09T16:16:45.590 回答
0

在苹果文档中,有一个名为Retrieving Leaderboard Scores的部分,他们使用了一个如何检索前 10 名分数的示例:

- (void) retrieveTopTenScores
{
    GKLeaderboard *leaderboardRequest = [[GKLeaderboard alloc] init];
    if (leaderboardRequest != nil)
    {
        leaderboardRequest.playerScope = GKLeaderboardPlayerScopeGlobal;
        leaderboardRequest.timeScope = GKLeaderboardTimeScopeAllTime;
        leaderboardRequest.range = NSMakeRange(1,10);
        [leaderboardRequest loadScoresWithCompletionHandler: ^(NSArray *scores, NSError *error) {
            if (error != nil)
            {
                // handle the error.
            }
            if (scores != nil)
            {
                // process the score information.
            }
            }];
    }
}

我们可以编辑 的范围leaderboardRequest,以检索更多分数,苹果在文档中说:

范围

从搜索返回的数字分数排名。

@property(nonatomic, assign) NSRange range

讨论范围

如果使用 initWithPlayerIDs: 方法初始化排行榜请求,则忽略该属性。否则,范围属性用于过滤哪些分数返回到您的游戏。例如,如果您指定范围为 [1,10],则搜索完成后,您的游戏将获得前十名的分数。默认范围是 [1,25]。

最小索引为 1。最大长度为 100。

于 2012-09-18T06:20:11.117 回答