2016-03-23 6 views
1
- (void)lookupPlayers { 
    NSLog(@"Looking up %lu players...", (unsigned long)match.players.count); 

    // Error on the below line 
    [GKPlayer loadPlayersForIdentifiers:match.players withCompletionHandler:^(NSArray *players, NSError *error) { { 

     if (error != nil) { 
      NSLog(@"Error retrieving player info: %@", error.localizedDescription); 
      matchStarted = NO; 
      [delegate matchEnded]; 
     } else { 

      // Populate players dict 
      self.playersDict = [NSMutableDictionary dictionaryWithCapacity:players.count]; 
      for (GKPlayer *player in players) { 
       NSLog(@"Found player: %@", player.alias); 
       [playersDict setObject:player forKey:player.playerID]; 
      } 

      // Notify delegate match can begin 
      matchStarted = YES; 
      [delegate matchStarted]; 

     } 
    }]; 
+0

In welcher Zeile tritt die Fehlermeldung auf? Während der Fehler nicht genau Englisch ist, ist es ziemlich klar; Sie senden ein Array von 'GKPlayer'-Objekten an eine Methode, die ein Array von' NSString'-Objekten erwartet – Paulw11

+0

@ Paulw11 Der Fehler ist im Code kommentiert. – rmaddy

+0

Oh richtig. Ich hasse es, wenn Leute das tun. Ich habe den grauen Text nie bemerkt. – Paulw11

Antwort

1

Lesen Sie die Dokumentation für GKPlayer loadPlayersForIdentifiers:withCompletionHandler: sendet. Das Array von Bezeichnern muss ein Array von NSString sein, aber Sie übergeben ein Array von GKPlayer.

Sie können dies tun, eine Reihe von Spieler-IDs aus dem Array von Spielern zu bekommen:

NSArray *playerIds = [match.players valueForKey:@"playerID"]; 

Dann playerIds passieren statt match.players zu loadPlayersForIdentifiers:withCompletionHandler:.

+0

Vielen Dank – James

+0

Ich bin froh, dass ich helfen konnte. Vergessen Sie nicht, hilfreiche Antworten zu akzeptieren, um anzuzeigen, dass Ihre Frage gelöst wurde. – rmaddy

Verwandte Themen