有一个[similar question from '12] 1,但它是一个逐个游戏(可能有所不同),没有得到解决,并且自从以来Game Center / GameKit可能发生了变化他们。
一个简单的案例是iOS上有两个播放器,都点击执行该代码的按钮(currentMatch
是类属性GKMatch?
):
if let match = currentMatch {
print("create rematch completion handler")
match.rematch(completionHandler: {(newMatch, error) in
print("execute rematch completion handler")
if let error = error {
print(error)
}
if let newMatch = newMatch {
print("rematch completed \(newMatch.players.count)")
self.currentMatch = newMatch
}
})
}
日志返回:
create rematch completion handler
match did change state “Player2” 2
disconnected from “Player2”
execute rematch completion handler
rematch completed 0
因此,GameKit自行断开了玩家的连接,执行了完成处理程序,似乎正在与0位玩家进行新的比赛。
关于如何与原始玩家重新比赛有何建议?有人做过这项工作吗?谢谢。