在iOS 10.3中未调用shouldReinviteDisconnectedPlayer

时间:2017-07-14 07:15:11

标签: ios swift gamekit

我使用默认的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比赛吗?如果确实如此,我应该在哪里期待新的邀请?

1 个答案:

答案 0 :(得分:0)

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