如何从GKLeaderboard加载他们的名字的朋友分数?

时间:2013-10-11 23:17:52

标签: iphone ios objective-c game-center gamekit

我想在我的应用中显示localPlayer朋友排行榜。我知道我只能从游戏中心得到朋友的分数,但我如何得到他们的显示名称?我知道我可以使用loadPlayersForIdentifiers,但是我必须拨打两个电话吗?一个得到他们所有的朋友的名字,一个得到排行榜,他们匹配他们?这似乎有点低效?

GKLeaderboard *leaderboardRequest = [[GKLeaderboard alloc] init];
if (leaderboardRequest != nil)
{
    leaderboardRequest.playerScope = GKLeaderboardPlayerScopeFriendsOnly;
    leaderboardRequest.timeScope = GKLeaderboardTimeScopeAllTime;
    leaderboardRequest.category = @"HighScore";
    leaderboardRequest.range = NSMakeRange(1,100);
    [leaderboardRequest loadScoresWithCompletionHandler: ^(NSArray *scores, NSError *error) {
        if (error != nil)
        {
            // Handle the error.
        }
        if (scores != nil)
        {
            GKScore* myScore = leaderboardRequest.localPlayerScore;

            NSLog(@"Me: %@: %d",myScore.playerID, (int)myScore.value);

            // Process the score information - here I would filter
            for (GKScore* score in scores) 
            {
                NSLog(@"%@: %d",score.playerID, (int)score.value);
            }
        }
    }];
}

1 个答案:

答案 0 :(得分:0)

根据(在清单4-12中):

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

在从排行榜加载得分范围后,您必须使用GKScore playerID属性来获取玩家的别名。这是正确显示自定义排行榜的唯一方法。您可以将别名延迟加载到UITableView

如何执行此操作在以下文档的清单3-5中进行了描述:

https://developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/GameKit_Guide/Users/Users.html#//apple_ref/doc/uid/TP40008304-CH8-SW20