Как правильно реализовать общий findMatchForRequest для GKMatchmaker (поэтому GKMatch.expectedPlayerCount == 0)?
При переключении на GKMatchmaker из MatchmakerViewController мои две учетные записи игрового центра в песочнице, работающие на разных устройствах (оба iPhone 5), больше не подключаются к одному совпадению. Оба показывают ожидаемый PlayerCount все еще выше 0.
Я следовал руководству RayWenderlich по созданию многопользовательской игры с игровым центром. Это должно быть в режиме реального времени и работал как таковой. С помощью GKMatchmakerViewController все работало совершенно нормально (как с автоматическим соответствием, так и с приглашением). Однако, как только я переключил один блок кода, он больше не работает. Я уже некоторое время возился с этим, и документы по Apple, похоже, мне совсем не помогают. Кто-нибудь знает, что мне нужно сделать дополнительно?
func findMatchWithMinPlayers(minPlayers: Int, maxPlayers: Int, viewController: UIViewController, delegate: GameKitHelperDelegate) {
if enableGameCenter == false {
return
}
matchStarted = false
gkMatch = nil
gkDelegate = delegate
viewController.dismissViewControllerAnimated(false, completion: nil)
var request = GKMatchRequest()
request.minPlayers = minPlayers
request.maxPlayers = maxPlayers
if pendingRecipients != nil {
request.recipients = pendingRecipients!
}
GKMatchmaker.sharedMatchmaker().findMatchForRequest(request, withCompletionHandler: { (match: GKMatch!, error: NSError!) -> Void in
self.gkMatch = match
self.gkMatch?.delegate = self
println(match)
if self.matchStarted == false && match.expectedPlayerCount == 0 {
self.lookupPlayers()
}
})
}
Это единственное различие между этим и тем, что работало, заключается в том, что вместо него есть GKMatchmaker, а не GKMatchmakerViewController и Delegate.