Проблема с GKTurnBasedMatch endTurnWithNextParticipants: turnTimeout: matchData: completeHandler:

Я делаю iphone игру, используя GKTurnBasedMatch. Сначала я создаю игру и приглашаю пару игроков.

Я заканчиваю, что первые игроки отлично работают с endTurnWithNextParticipants: turnTimeout: matchData: completionHandler: и он переходит к второму игроку.

Когда второй игрок делает свой ход, обновляет данные соответствия и обновляет следующих участников, он пытается называть тот же endTurnWithNextParticipants: turnTimeout: matchData: completionHandler:, однако я получаю сообщение об ошибке.

GKErrorDomainCode = 17 "запрошенные операции не могут быть завершены, так как один или несколько параметров недействительны"

Массив nextParticipants кажется прекрасным. Все, что я делаю, помещает текущего игрока в конец массива участников, turnTimeOut кажется прекрасным, я делаю то же самое, что и в первый раз, и matchdata также должны быть хорошими.

Есть ли что-то, что мне не хватает? Единственное, что я могу сказать, это то, что я не принимаю приглашение на игру или что-то в этом роде. Однако документация мне непонятна.

Я пытаюсь отлаживать это в течение нескольких часов.

Буду признателен за любую помощь, которую вы можете мне дать! Огромное спасибо.

Ответ 1

У меня была такая же проблема (или, по крайней мере, такая же), но я нашел выход из нее. Объект, который вы получаете (gamedata), не должен передаваться, как пирог. В моем проекте мне нужно было взять данные, преобразовать их в игровые объекты, обработать их с данными, которые были обработаны, а затем преобразовать их обратно в пакет данных, а затем отправить его следующему игроку.

Для меня это единственный способ безопасно обрабатывать данные без изменения исходного источника.

Удачи, надеюсь, что это помогло.