2016-04-08 2 views
0

Я установил пошаговые матчи 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) 

} 
+0

Можете ли вы добавить код, в котором вы аутентифицируете локального пользователя? – Thunk

+0

Еще одна вещь, которую нужно проверить в обработчиках завершения 'findMatchForRequest' и' loadMatchWithID', попробуйте сбросить массив 'members', чтобы узнать, в каком состоянии находится локальный проигрыватель. – Thunk

+0

Edit: Добавлен код аутентификации. –

ответ

0

У меня была та же проблема, так как две недели. С одной секунды она работала, кажется, что это проблема @apple. Ничего не измените и повторите попытку :)

1

Кажется, что несколько человек столкнулись с этим недавно. Не уверен, что это актуально, но приведенные примеры всегда использовались быстро. Основываясь на How to list all available GKTurnBasedMatches for a player?, похоже, что просто создание таблицы лидеров устранит проблему.

На основании темы https://stackoverflow.com/a/34056115/1641444, похоже, что иногда Game Center становится ошеломленным и, по какой-либо причине, создавая таблицу лидеров/достижение или даже просто меняя значение по умолчанию, удар снова начинает действовать.

+0

Thunk прав, это исправлено для меня. Перейдите на вкладку iTunes Connect> Your App> App Store> найдите версию своего приложения> переключите переключатель Game Center и добавьте таблицу лидеров. – Bokoskokos

Смежные вопросы