4

友達を試合に招待するのに苦労しています。

GKMatchRequest *request = [[[GKMatchRequest alloc] init] autorelease]; 
    request.minPlayers = 2;
    request.maxPlayers = 2;
    request.playersToInvite = [NSArray arrayWithObjects: @"G:1102359306",nil ];


//  GKMatchmakerViewController *mv = [[GKMatchmakerViewController alloc] initWithMatchRequest:request];
//  [self presentModalViewController:mv animated:YES];


    [[GKMatchmaker sharedMatchmaker] findMatchForRequest:request withCompletionHandler:^(GKMatch *match, NSError *error) {
        if (error) {
            NSLog([error description]);
        }
        else if (match != nil) {NSLog(@"good match");
            //self.chatMatch = match;
            //self.chatMatch.delegate = self;       
            //[self chatReady];
        }
        else {
            NSLog(@"other error");
        }

    }];

問題は、アカウントにログインしている 2 番目のデバイス (G:1102359306) で招待通知を受信しないことです。GKMatchmakerViewController (2 行以上のコメントを外す) を使用し、GKMatchmaker ブロックにコメントすると、親友 - G:1102359306 が自動的にチェックされ、彼を招待すると、承認/辞退の通知が表示されます。

上記のコードに何か問題がありますか? 独自の UI を使用してマルチプレイヤー モードを処理したいと考えています。奇妙な問題は、コンソールにもログの良い一致/その他のエラーが表示されないことです.[エラーの説明]は、上記のコードを2回呼び出したときにのみ出力されます-以前のreqがキャンセルされたと表示されます.

4

1 に答える 1

2

特定のプレーヤーのセットをプログラムで試合に招待することはできません。findMatchForRequest:withCompletionHandler:ドキュメントには次のように書かれています。

マッチ リクエストのplayersToInviteプロパティは無視されます。特定のプレイヤーのセットをマッチに招待するには、マッチメーカー ビュー コントローラーを表示する必要があります。

あなたが望むことをする公開APIはありません。

于 2012-06-02T20:34:12.497 に答える