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

    }];

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

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

4

1 回答 1

2

您不能以编程方式邀请一组特定的玩家参加比赛。findMatchForRequest:withCompletionHandler:文档是这样说的:

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

没有公共 API 可以满足您的需求。

于 2012-06-02T20:34:12.497 回答