我为我的游戏设置了GameCenter回合制比赛。现在我只是想显示当前GK播放器的当前匹配列表。
这是我的代码:
GKTurnBasedMatch.loadMatchesWithCompletionHandler { (matchesOpt, errorOpt) in
if let error = errorOpt {
print("Error loading matches: \(error.localizedDescription)")
} else if let matches = matchesOpt {
self.matches = matches
self.gamesTableView.reloadData()
} else {
print("Matches array is nil")
}
}
}
第三种情况总是被击中,匹配数组是零。
我认为应该有比赛。我正在使用
GKTurnBasedMatch.findMatchForRequest
开始比赛,并且成功了。此外,如果我从findMatchForRequest记下匹配的matchId,然后我调用
GKTurnBasedMatch.loadMatchWithID(matchId)
找到匹配项,并找到正确的匹配数据和所有内容。
有谁知道如何让loadMatchesWithCompletionHandler返回我可以通过id检索的相同游戏?
编辑:这是验证码:
GKLocalPlayer.localPlayer().authenticateHandler = { (viewControllerOpt, errorOpt) in
NSLog("GK local player authentication finished. Error: \(errorOpt)")
if let viewController = viewControllerOpt {
self.presentViewController(viewController, animated: true, completion: nil)
}
GKLocalPlayer.localPlayer().registerListener(self)
}
答案 0 :(得分:1)
最近似乎有很多人遇到过这种情况。不确定它是否相关,但引用的例子一直使用swift。基于How to list all available GKTurnBasedMatches for a player?,看起来只是创建排行榜将解决问题。
基于https://stackoverflow.com/a/34056115/1641444的主题,似乎有时游戏中心会变得恍惚,无论出于何种原因,创建排行榜/成就,甚至只是更改默认值,kick都会重新开始行动。
答案 1 :(得分:0)
两个星期后我遇到了同样的问题。从一秒到另一秒它正在工作,似乎这是一个问题@apple。什么都不做,再试一次:))