游戏中心以编程方式邀请朋友

时间:2010-11-07 12:54:04

标签: iphone ios game-center invite gkmatchmaker

我很难邀请朋友参加比赛。

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");
        }

    }];

问题是我从未在登录到该帐户的第二台设备上收到邀请通知 - G:1102359306。 当我使用GKMatchmakerViewController(取消注释2行以上)并评论GKMatchmaker块时,我已经自动检查了好友 - G:1102359306,当我邀请他时会显示接受/拒绝的通知,这就是我知道它是正确的。

您认为上述代码有什么问题吗?我想使用自己的UI来处理多人游戏模式。奇怪的问题是我也没有在控制台中看到任何日志匹配/其他错误,并且[错误描述]仅在我调用上述代码两次时打印 - 它表示先前的请求被取消。

1 个答案:

答案 0 :(得分:2)

您无法以编程方式邀请特定的一组玩家参加比赛。 findMatchForRequest:withCompletionHandler: documentation说明了这一点:

  

匹配请求的playersToInvite属性被忽略;要邀请特定的一组玩家参加比赛,您必须显示一个红娘视图控制器。

没有公共API能够满足您的需求。