如何检索 GKLeaderboard 的所有分数?(我正在制作自己的排行榜图形)。我需要知道某个排行榜中的分数数量,但似乎没有办法轮询 GC 来获取此类信息?
问问题
1616 次
3 回答
1
我感觉答案是 GKLeaderboard 的 maxRange 属性。文档:
在调用 loadScoresWithCompletionHandler: 完成之前,此属性无效。之后,它包含给定您应用于查询的过滤器可返回到您的游戏的条目总数。
所以这将是排行榜表视图中的行数。
于 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 回答