我为我的游戏设置了 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")
}
}
}
第三种情况总是命中,matches 数组为 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)
}