2011-01-09 9 views

Antwort

11

Wie in der Dokumentation angegeben

Ihre Bewerbung sollte die Einladung Handler so früh wie möglich gesetzt, nachdem Ihre Anwendung ins Leben gerufen; ein geeigneter Ort zum Setzen der Handler ist in der Completion-Block Sie bereitgestellt, die ausgeführt wird, nachdem der lokalen Player authentifiziert ist.

Irgendwo im Code, sollten Sie den lokalen Spieler mit so etwas wie diese

[[GKLocalPlayer localPlayer] authenticateWithCompletionHandler:^(NSError *error) { 
    if (error == nil) { 
     // Insert your piece of code here 
    } else { 
     // Handle the error 
    } 
}]; 

Hoffnung haben authentifizieren, die unter

+0

Mein Problem. Hab nicht alles gelesen. Entschuldige die dumme Frage. – 0xDE4E15B

+1

Wir haben das alles gemacht, keine große Sache :) – Jilouc

+0

Hallo. Könnten Sie bitte meine Frage sehen? http://stackoverflow.com/questions/10970538/how-to-accept-an-invitation-in-game-center –

1

Mein Code hilft, ist, und es funktioniert sehr gut. Im authenticateLocalUser, fügen Sie den Code unten:

[[GKLocalPlayer localPlayer] authenticateWithCompletionHandler:^(NSError *error) { 
    [GKMatchmaker sharedMatchmaker].inviteHandler = ^(GKInvite *acceptedInvite, NSArray *playersToInvite) { // Add for invite handler 
     // Insert application-specific code here to clean up any games in progress. 
     if (acceptedInvite) { 
      GKMatchmakerViewController *mmvc = [[GKMatchmakerViewController alloc] initWithInvite:acceptedInvite] ; 
      mmvc.matchmakerDelegate = self; 
      // [self presentModalViewController:mmvc animated:YES]; 
      [_delegate matchStart]; 
     } else if (playersToInvite) { 
      GKMatchRequest *request = [[GKMatchRequest alloc] init] ; 
      request.minPlayers = 2; 
      request.maxPlayers = 2; 
      request.playersToInvite = playersToInvite; 

      GKMatchmakerViewController *mmvc = [[GKMatchmakerViewController alloc] initWithMatchRequest:request] ; 
      mmvc.matchmakerDelegate = self; 
      // [self presentModalViewController:mmvc animated:YES]; 
      [_delegate matchStart]; 
     } 
    }; 

    [self callDelegateOnMainThread:@selector(processGameCenterAuth:) withArg:NULL error:error]; 
}]; 
Verwandte Themen