1

localPlayerアプリで友達のリーダーボードを表示したい。フレンドのみのスコアを gamecenter から取得できることは知っていますが、フレンドの表示名を取得するにはどうすればよいですか? 使用できることはわかってloadPlayersForIdentifiersいますが、2 つの呼び出しを行う必要がありますか? 1 つはすべての友達の名前を取得し、もう 1 つはリーダーボードを取得して、それらを一致させますか? これはやや効率が悪いようですか?

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);
            }
        }
    }];
}
4

1 に答える 1

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

于 2013-10-16T00:27:14.000 に答える