0

ゲームセンターのフレンドスコープからランクを取得するために、以下のコードを作成しました。残念ながら、グローバル スコープのランクのみを返します。

...
GKLeaderboard *friendLeaderboard=[[GKLeaderboard alloc] initWithPlayers:@[[GKLocalPlayer localPlayer]]];
                [friendLeaderboard setIdentifier:LeaderboardID];
                [friendLeaderboard setTimeScope:GKLeaderboardTimeScopeAllTime];
                [friendLeaderboard setPlayerScope:GKLeaderboardPlayerScopeFriendsOnly];
                [friendLeaderboard setRange:NSMakeRange(1, 1)];
                [friendLeaderboard loadScoresWithCompletionHandler:^(NSArray *friendScores, NSError *error) {
                    if (error) {
                        completionHandler(NULL, NULL);
                        //[scoreReporter release];//auto release added
                    }
                    else{
                        GKScore* gScore = [globalLeaderboard localPlayerScore];
                        GKScore* fScore = [friendLeaderboard localPlayerScore];
                        NSLog(@"GCHelper globalScores: %@", gScore);
                        NSLog(@"GCHelper friendScores: %@", fScore); //NOT CORRECT
                        completionHandler(gScore, fScore);
                        //[scoreReporter release];//auto release added
                    }
                }];
...

友達のリーダーボード全体をループする以外に、正しい方法または別の方法はありますか?

4

1 に答える 1

0

修正は次のとおりです。

                //get friend rank
                GKLeaderboard *friendLeaderboard=[[GKLeaderboard alloc] init];//WithPlayers:@[[GKLocalPlayer localPlayer]]];// autorelease];
                [friendLeaderboard setIdentifier:LeaderboardID];
                [friendLeaderboard setTimeScope:GKLeaderboardTimeScopeAllTime];
                [friendLeaderboard setPlayerScope:GKLeaderboardPlayerScopeFriendsOnly];
                //[friendLeaderboard setRange:NSMakeRange(1, 1)];

奇妙なバグですが、効率をいくらか犠牲にする必要があると思います

于 2015-09-09T01:08:43.753 に答える