GKMatchmaker возвращает вам матч до установления соединения между игроками;на этом этапе все игроки находятся в процессе соединения друг с другом.
Свойство playerIDs изначально устанавливается на количество игроков, уже подключенных к матчу;массив может быть пустым.Когда игрок подключается к матчу, его идентификатор добавляется в массив.
Кроме того, некоторые игроки могут не подключиться (я не проверял этот случай, поэтому не знаюесли вы получите сообщение об ошибке)
Вы ищете GKMatch.expectedPlayerCount
Значение этого свойства уменьшается, когда игрок подключается к матчу.Когда его значение достигает нуля, все ожидаемые игроки подключаются, и ваша игра может начать матч.
Я также подозреваю, что GKMatch.playerIDs
не включает игрока;то есть вы, вероятно, сразу увидите ожидаемыйPlayerCount = 1 после подключения.
Я не уверен, что GameKit делает с потоками.