为什么Game Center对接控制器卡在“连接”上?

时间:2019-01-22 02:29:39

标签: ios game-center gamekit

试图解决GCMatchmakerViewController内似乎正在发生的Game Center问题,但也许是由于某种原因造成的。有两种通过“邀请朋友”按钮与玩家匹配的方法:输入他们的电子邮件(或从联系人中选择),或者从显示的最近玩过的人的名单中点击。

如果我通过最近玩过的人的列表进行选择,则会向他们发送通知,如果他们接受,则该应用将启动,进入正确的屏幕,显示GCMatchmakerViewController,进行连接,接受并我们一起去玩游戏。

如果我通过键入/选择其联系人进行选择,则会发送一条iMessage,他们将转到“消息”,点击消息气泡。如果游戏应用程序已经在运行,它将进入前台,显示GCMatchmakerViewController,连接,接受并离开我们。但是,如果该应用未运行,它将启动并进入正确的屏幕,显示GCMatchmakerViewController,尝试连接,然后一直坐在那里。

为什么在后一种情况下无法建立连接?

卡住时显示的屏幕是这样的:

GVMatchmakingViewController

呈现发出邀请的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)
                    }

据我所知,我的应用程序不知道正在发生哪种情况,因此不会基于此选择不同的行为。陷入困境,并且不确定如何建议用户。谢谢你的想法。

0 个答案:

没有答案