2010-11-09 31 views
6

J'utilise Game Center pour configurer un leaderboard personnalisé, quand il s'agit de récupérer les données pour mon UITableView, je reçois seulement la propriété playerID pour chaque entrée, mais pas une propriété d'alias beaucoup plus utile que je veux utiliser pour afficher qui a obtenu chaque score.Classement personnalisé de Game Center - Ai-je vraiment besoin de faire 2 appels pour obtenir l'alias d'un joueur?

Je ne comprends pas pourquoi Apple a fait comme ça, sûrement un score sur un tableau de bord n'a aucun sens sans le nom du joueur qui l'a obtenu?

Quoi qu'il en soit, il semble que la seule façon dont je peux obtenir le nom du lecteur est d'utiliser la méthode loadPlayersForIdentifiers: withCompletionHandler: de la classe GKPlayer. Cela semble être une étape inutile - quelqu'un peut-il confirmer si c'est ce qui doit être fait juste pour obtenir l'alias du joueur?

Répondre

4

Oui .. Il ne stocke l'ID du joueur .. Donc, pour charger l'alias réel, vous devez passer le playerid et obtenir l'alias ..

Si vous ne savez pas quelle est la codes réels:

si vous voulez obtenir l'alias de joueur local est:

[[GKLocalPlayer localPlayer] alias]; 

autres joueurs:

[GKPlayer loadPlayersForIdentifiers:playerIDsArray withCompletionHandler:^(NSArray *players, NSError *error) 
    { 
     if (error != nil) 
     { 
// Handle the error. 
     } 
     if (players != nil) 
     { 

for(int i = 0; i<array_size; i++)    
[NameArray objectAtIndex:i] = [[players objectAtIndex:i]alias]; 

     } 
     }]; 

Espérons que ça aide ...