Iphone 游戏中心-连接多人游戏

Iphone 游戏中心-连接多人游戏,iphone,objective-c,ipad,game-center,Iphone,Objective C,Ipad,Game Center,我一直在尝试实现Game Center多人游戏,并努力实现GKMatchViewController之外的任何功能 我有两个视图,一个是我的主菜单,这是多人游戏启动的地方,玩家可以获得GKMatchViewController。然后在这之后,用户不知道,但是视图更改为多人视图,在那里他们实际玩,因此当GKMatchViewController被解除时,他们在游戏视图而不是菜单中 在这里我启动了多人游戏(是的,我正在使用cocos2d): 按“立即播放”时,出现以下错误: 匹配错误:error D

我一直在尝试实现Game Center多人游戏,并努力实现GKMatchViewController之外的任何功能

我有两个视图,一个是我的主菜单,这是多人游戏启动的地方,玩家可以获得GKMatchViewController。然后在这之后,用户不知道,但是视图更改为多人视图,在那里他们实际玩,因此当GKMatchViewController被解除时,他们在游戏视图而不是菜单中

在这里我启动了多人游戏(是的,我正在使用cocos2d):

按“立即播放”时,出现以下错误:

匹配错误:error Domain=gkerrodomain Code=2“请求的操作已被取消。”UserInfo=0x2248d0{NSLocalizedDescription=请求的操作已被取消。}


然后它就停留在“寻找玩家…”视图上。

我从未对GameCenter做过任何事情,但也许我能帮上忙。当我发现错误时

“请求的操作已完成 取消“

在反向地理编码器中,我发现应用程序没有时间执行请求。
您通过执行
findMatchForRequest:
得到错误,因此可能您的请求变量未完全设置,请检查该错误。您还可以尝试将
NSLog()
放在第一行(在块中),并查看传递的变量
returnedMatch
error

抱歉我理解,我已编辑以包含当前问题。
-(void)mpGo:(id)sender{
    GKMatchRequest *request = [[[GKMatchRequest alloc] init] autorelease];
    request.minPlayers = 2;
    request.maxPlayers = 2;

    [[GKMatchmaker sharedMatchmaker] findMatchForRequest:request
                                   withCompletionHandler:^(GKMatch *returnedMatch, NSError *error) 
     {
         if (error) NSLog(@"match error: %@", error);
         else if (returnedMatch != nil)
         {
             match = [returnedMatch retain]; 
             match.delegate = self; // start!
         }
     }];

    tempVC = [[UIViewController alloc] init];

    GKMatchmakerViewController *mmvc = [[[GKMatchmakerViewController alloc] initWithMatchRequest:request] autorelease];
    if (mmvc != nil)
    {
        mmvc.matchmakerDelegate = self;
        [[[CCDirector sharedDirector] openGLView] addSubview:tempVC.view];
        [tempVC presentModalViewController:mmvc animated: YES];
    }

    [[CCDirector sharedDirector] replaceScene:[CCTransitionFade transitionWithDuration:1.0 scene:[mpView node] withColor:ccWHITE]];
}