在iOS 10.3中未调用shouldReinviteDisconnectedPlayer

问题描述 投票:0回答:1

我正在使用默认的GKMatchmakerViewController进行匹配,使用以下代码

let request = GKMatchRequest()
request.defaultNumberOfPlayers = 2
let matchmakerViewController = GKMatchmakerViewController(matchRequest: request)!
matchmakerViewController.matchmakerDelegate = self
self.present(matchmakerViewController, animated: true, completion: nil)

我的手机和模拟器都在运行,并能够找到对方并输入一个匹配项。我也可以使用

match.sendData(toAllPlayers: data, with: .reliable)

一切都很好,直到我把其中一个应用程序放在后台。我能够触发这个事件

public func match(_ match: GKMatch, player: GKPlayer, didChange state: GKPlayerConnectionState) {
    print("player disconnected")
}

一旦应用程序再次处于活动状态,问题就是重新连接用户。这永远不会被调用。

public func match(_ match: GKMatch, shouldReinviteDisconnectedPlayer player: GKPlayer) -> Bool {
    return true
}

有什么关于我的比赛阻止这被调用?我在头文件中看到了这一点

//匹配中断时调用此方法;如果返回YES,将发送新的邀请以尝试重新连接。这仅适用于1v1游戏

我的比赛不算是1v1比赛吗?如果是的话,我应该在哪里期待新的邀请?

ios swift gamekit
1个回答
0
投票

根据我的经验,在第一次断开匹配时,不会调用shouldReinviteDisconnectedPlayer方法。它随后被称为。我不知道为什么第一次不召唤它。

© www.soinside.com 2019 - 2024. All rights reserved.