2012-04-25 6 views

答えて

1

GKMatchRequestを作成した後、findMatchForRequestを呼び出す必要があります。 findMatchForRequestの補完ハンドラでは、新しいマッチのmatchDataプロパティにゲームのレベルを格納できます。

1

私はGKTurnBasedMatchmakerViewControllerを使用して、automatch/invite UIを表示します。 GKMatchRequestを作成するときに、私はこのようなGKTBMVCに(のNSNumberにパック)にObjC関連playerGroup値を追加します。

GKMatchRequest *request = [[GKMatchRequest alloc] init]; 
request.playerGroup = somePlayerGroup; 
GKTurnBasedMatchmakerViewController *mmvc = [[GKTurnBasedMatchmakerViewController alloc] initWithMatchRequest:request]; 
objc_setAssociatedObject(mmvc, 
         &kPlayerGroupKey, 
         [NSNumber numberWithInteger:request.playerGroup], 
         OBJC_ASSOCIATION_RETAIN); 

[myViewController presentViewController:mmvc 
           animated:YES 
          completion:nil]; 

その後turnBasedMatchmakerViewController:didFindMatch:デリゲートメソッドで、私たちが必要とする一致の種類を知るためにplayerGroup値を読みますセットアップまたは参加する:新しいマッチを作成するときに

- (void)turnBasedMatchmakerViewController:(GKTurnBasedMatchmakerViewController *)mmvc didFindMatch:(GKTurnBasedMatch *)match 
{ 
    [myViewController dismissViewControllerAnimated:YES 
              completion:^{ 
               NSNumber *n = objc_getAssociatedObject(mmvc, &kPlayerGroupKey); 
               NSInteger playerGroup = [n integerValue]; 
               [self switchToMatch:match matchKind:playerGroup]; 
              }]; 
} 

もちろん、あなたがmatch.matchDataplayerGroupを保存することができますが、時にはお見合いビューコントローラでそれを渡すために、より便利です。

関連する問題