Я установил пошаговые матчи GameCenter для своей игры. Сейчас я просто пытаюсь отобразить список текущих совпадений для текущего игрока GK.GameCenter - GKTurnBasedMatch.loadMatchesWithCompletionHandler возвращает нулевой массив
Вот мой код:
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
чтобы начать матч, и он преуспел. Кроме того, если я отмечаю matchId матча с findMatchForRequest, а затем я называю
GKTurnBasedMatch.loadMatchWithID(matchId)
он находит совпадение, с правильными данными матча и все.
Кто-нибудь знает, как я могу получить loadMatchesWithCompletionHandler, чтобы вернуть те же игры, которые я могу получить по id?
Edit: Вот код аутентификации:
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)
}
Можете ли вы добавить код, в котором вы аутентифицируете локального пользователя? – Thunk
Еще одна вещь, которую нужно проверить в обработчиках завершения 'findMatchForRequest' и' loadMatchWithID', попробуйте сбросить массив 'members', чтобы узнать, в каком состоянии находится локальный проигрыватель. – Thunk
Edit: Добавлен код аутентификации. –