我正在使用游戏中心创建一个回合制游戏。 这是一对一游戏,因此每个游戏都有两个参与者。
当游戏结束时,会出现一个游戏切换屏幕,任何一个参与者都可以按“重新匹配”以开始与同一个对手的新游戏。
按下按钮时使用的代码是(简化):
let request = GKMatchRequest()
request.maxPlayers = 2
request.minPlayers = 2
request.recipients = [opponent]
GKTurnBasedMatch.findMatchForRequest(request, withCompletionHandler: {
match, error in
if error != nil {
println("FIND MATCH REQUEST ERROR:\(error.localizedDescription)")
} else {
println("Match Found")}})
现在,我的问题是这个。当我在游戏中心重新组合对手是我的朋友的游戏时,一切似乎都运行正常。但是,如果我在游戏中心重新组合对手不是我的朋友的游戏,我会收到以下错误:
由于播放器无效,无法完成请求的操作。
然而,当我打印对手玩家(GKPlayer)时,我得到以下内容(这似乎没错,并且没有错误,如错误所示):
(playerID:g:58D9E388A2CD0DEFC795DC9035E7D22A别名:TestBoomar_1名称:“TestBoomar_1”状态:( null))
所以,我的问题是:GKMatchRequest收件人必须是玩家朋友才能使这些收件人有效吗?收件人不应该成为Gamecenter中的任何玩家,不依赖于他们是否是游戏创建者的朋友?
赞赏任何意见, 谢谢!