试图解决GCMatchmakerViewController
内似乎正在发生的Game Center问题,但也许是由于某种原因造成的。有两种通过“邀请朋友”按钮与玩家匹配的方法:输入他们的电子邮件(或从联系人中选择),或者从显示的最近玩过的人的名单中点击。
如果我通过最近玩过的人的列表进行选择,则会向他们发送通知,如果他们接受,则该应用将启动,进入正确的屏幕,显示GCMatchmakerViewController
,进行连接,接受并我们一起去玩游戏。
如果我通过键入/选择其联系人进行选择,则会发送一条iMessage,他们将转到“消息”,点击消息气泡。如果游戏应用程序已经在运行,它将进入前台,显示GCMatchmakerViewController
,连接,接受并离开我们。但是,如果该应用未运行,它将启动并进入正确的屏幕,显示GCMatchmakerViewController
,尝试连接,然后一直坐在那里。
为什么在后一种情况下无法建立连接?
卡住时显示的屏幕是这样的:
呈现发出邀请的vc的代码:
let localPlayer: GKLocalPlayer = GKLocalPlayer.local
if localPlayer.isAuthenticated {
let matchrequest = GKMatchRequest()
matchrequest.minPlayers = 2
matchrequest.maxPlayers = 4
matchrequest.defaultNumberOfPlayers = 2
matchrequest.inviteMessage = "Want to play: " + "some name"
if let mmVC = GKMatchmakerViewController(matchRequest: matchrequest) {
mmVC.matchmakerDelegate = self
self.present(mmVC, animated: true)
}
}
接受邀请的代码:
if let response = GKMatchmakerViewController.init(invite: invite) {
response.matchmakerDelegate = newGameVC
present(response, animated: true, completion: nil)
}
据我所知,我的应用程序不知道正在发生哪种情况,因此不会基于此选择不同的行为。陷入困境,并且不确定如何建议用户。谢谢你的想法。