0

I made this code below to get the rank from friend scope in game centre. Unfortunately it only returns the rank of the global scope.

...
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
                    }
                }];
...

Is there an correct or alternate way other than looping through the full friends leaderboard?

Striker
  • 507
  • 4
  • 11

1 Answers1

0

Heres a fix:

                //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)];

A weird bug but I guess I need to sacrifice some efficiency

Striker
  • 507
  • 4
  • 11