6 Stimmen

Benutzerdefinierte Game Center-Rangliste - Muss ich wirklich 2 Anrufe tätigen, um den Alias eines Spielers zu erhalten?

Ich verwende Game Center, um eine benutzerdefinierte Rangliste einzurichten, wenn es darum geht, die Daten für meine UITableView abzurufen, erhalte ich nur die playerID-Eigenschaft für jeden Eintrag, aber nicht eine viel nützlichere Alias-Eigenschaft, die ich verwenden möchte, um anzuzeigen, wer jede Punktzahl bekam.

Ich verstehe nicht, warum Apple das so gemacht hat. Ein Punktestand auf einer Anzeigetafel ist doch ohne den Namen des Spielers, der ihn erzielt hat, bedeutungslos.

Wie auch immer, es scheint, die einzige Möglichkeit, wie ich den Namen des Spielers erhalten kann, ist die loadPlayersForIdentifiers:withCompletionHandler: Methode der GKPlayer-Klasse zu verwenden. Dies scheint ein unnötiger Schritt zu sein - kann jemand bestätigen, ob dies notwendig ist, um den Alias des Spielers zu erhalten?

4voto

xuanweng Punkte 1939

Ja, es wird nur die ID des Spielers gespeichert. Um den tatsächlichen Alias zu laden, musst du also die playerid übergeben und den Alias abrufen.

Falls Sie sich nicht sicher sind, was die tatsächlichen Codes sind:

wenn Sie den Alias des lokalen Spielers erhalten möchten:

[[GKLocalPlayer localPlayer] alias];

andere Spieler:

    [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];

        }
        }];

Ich hoffe, es hilft...

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X