Ios 已收到并处理游戏中心邀请,但比赛未开始

Ios 已收到并处理游戏中心邀请,但比赛未开始,ios,game-center,gkmatchmaker,Ios,Game Center,Gkmatchmaker,我的游戏中心代码遇到了一个问题,我一直在研究,现在正在使用一种被认可的标准方法。我只是看不出哪里出了问题 我正在写一个四人纸牌游戏,如果有人退出,我希望他们能被邀请回到游戏中 情况是这样的: 比赛正在进行,所有的球员都在比赛中。一名球员退出比赛。指定主机检测到断开连接,并使用addPlayersToMatch向辍学者发出邀请。已在开始时设置了退出的inviteHandler,它将激发。辍学者收到邀请并调用标准代码: GKMatchmakerViewController *mmvc mmvc =

我的游戏中心代码遇到了一个问题,我一直在研究,现在正在使用一种被认可的标准方法。我只是看不出哪里出了问题

我正在写一个四人纸牌游戏,如果有人退出,我希望他们能被邀请回到游戏中

情况是这样的: 比赛正在进行,所有的球员都在比赛中。一名球员退出比赛。指定主机检测到断开连接,并使用
addPlayersToMatch
向辍学者发出邀请。已在开始时设置了退出的inviteHandler,它将激发。辍学者收到邀请并调用标准代码:

GKMatchmakerViewController *mmvc
mmvc = [[GKMatchmakerViewController alloc] initWithInvite:_pendingInvite];
mmvc.matchmakerDelegate = self;
[_presentingViewController presentViewController:mmvc animated:YES completion:nil];
在退出机器上,MatchMakerViewController适时出现,它只显示已经参加比赛的球员,他们很快就会被标记为“准备就绪”。但是,控制器显示消息“等待游戏开始…”,并且从不触发
didFindMatch
。没有启动游戏的UI(左上角唯一的按钮是Cancel)

奇怪的是,主机
invitereResponseHandler
确实启动了,因此主机似乎收到了辍学者回来的消息。我在这里调用
finishMatchmakingForMatch
,但它似乎没有任何作用

那么,我该如何让辍学的学生解雇MatchMakerViewController呢


把我的头发扯下来

您是否正在处理matchmaker委托中的did find match方法

(请注意,我的代码是swift)但您可以轻松地将其移植到obj c

//已找到对等匹配,游戏应开始

public func matchmakerViewController(viewController:  GKMatchmakerViewController!, didFindMatch match: GKMatch!)
{
    println("didFindMatch");
    if (!_matchStarted && match.expectedPlayerCount == 0) {
        match.delegate = self;
        mmvc.dismissViewControllerAnimated(true,completion:completedBlock);
    }

}