Développement iOS: Lors de la réception d'une invitation Game Center, comment puis-je get l'object GKMatch?

Je construis un jeu iPhone qui utilise Game Center et j'ai de la difficulté à comprendre comment démarrer un jeu de match qui a été lancé en recevant une invitation à jouer d'un ami. Les docs disent ça …

Le paramètre acceptedInvite est non nul lorsque l'application reçoit une invitation directement d'un autre joueur. Dans cette situation, l'application de l'autre joueur a déjà créé la requête de correspondance, donc cette copy de votre application n'a pas besoin d'en créer une.

D'après ceci, je n'ai pas besoin de créer une requête de correspondance puisque le joueur qui a fait l'invocation en a déjà créé une. Si oui, comment puis-je get l'object GKMatch nécessaire pour envoyer / recevoir des données depuis / vers l'autre lecteur? La seule façon que je connaisse pour get l'object GKMatch est de créer une requête de correspondance et d'appeler la méthode findMatchForRequest , ce que les docs disent que je ne devrais pas faire.

Le seul exemple de code qu'ils ont pour cela implique la création et l'utilisation de GKMatchmakerViewController , que je ne peux pas utiliser depuis que je crée mes propres vues personnalisées.

Merci beaucoup pour votre sagesse!

    J'ai reçu une réponse de l'un des ingénieurs d'Apple à ce sujet, voici ce qu'il a dit …

    Vous pouvez effectuer une mise en correspondance automatique avec des vues personnalisées, mais il est impossible d'utiliser des invitations sans utiliser GKMatchmakerViewController. Donc, vous devriez suivre l'exemple de code.

    Je suppose qu'il va juste y avoir une rupture radicale dans la cohérence de mon interface user.

    J'ai une solution au problème d'invitation du centre de jeu. Donc, suivez ces étapes: –
    1- Vérifiez que vos notifications push sont activées dans les parameters et que les invitations aux amis sont activées dans les parameters de votre count Game Center.
    2-installez maintenant la dernière version du jeu de fruits ninja
    3-Ouvrez le centre de jeu et connectez-vous, puis mettez-le en arrière-plan.
    4-open fruit ninja directement au nouveau jeu => multijoueur => gamecenter
    5-maintenant vous verrez deux options (inviter un ami et jouer maintenant dans le coin en haut à droite)
    6-bash le button jouer maintenant, de sorte que le centre de jeu finda le jeu non invité pour vous.
    7-quand le jeu commence et vous êtes en mesure de voir le nom de votre ami non-invité dans le coin en haut à droite. Après la fin du jeu, allez directement au centre de jeu en arrière-plan et dans votre section de jeux et allez dans le ninja de fruits dans la list des jeux. Ici, vous verrez l'option récemment lue, Touchez-la. Ici, vous verrez en haut de la list un nom de joueur (avec lequel vous avez joué), appuyez sur le nom et envoyez-lui une request d'ami immédiatement.
    8-s'il accepte la request goto friends => (votre ami récemment ajouté) => gameplayed set (fruit ninja) => hit play (en haut à droite)
    9-maintenant le jeu s'ouvrira et vous verrez la page du GC. Appuyez sur le button d'invitation et choisissez l'ami récemment ajouté, puis envoyez-le, en l'attendant et prêt à jouer.

    Maintenant votre identifiant gc a été vérifié et vous pouvez inviter n'importe lequel de vos amis et jouer à n'importe quel jeu (qui supporte la fonction d'invitation)

    Malgré ce que l'ingénieur d'Apple a dit, pourquoi ne pas essayer quelque chose comme ceci sans inviter à utiliser une vue personnalisée:

     [[GKLocalPlayer localPlayer] loadFriendsWithCompletionHandler:^(NSArray *friends, NSError *error) { [GKPlayer loadPlayersForIdentifiers:friends withCompletionHandler:^(NSArray *players, NSError *error) { for (GKPlayer *player in players) { NSLog(@"%@",player.alias); //here I'm just logging the aliases but the array players can be used in any way } }]; 

    }];

    Maintenant, si un user sélectionne des joueurs de cette list dans une vue personnalisée, GKMatchRequest possède une propriété appelée playersToInvite et nous pouvons définir ces joueurs sur cette propriété. Et créez une correspondance par programmation en utilisant cette requête.

    Cela semble très possible mais je ne l'ai pas essayé pour être honnête