Problema con GKTurnBasedMatch endTurnWithNextParticipants: turnTimeout: matchData: completionHandler:

Estoy haciendo un juego para iPhone usando GKTurnBasedMatch. Primero creo el juego e invito a un par de jugadores.

Termino los primeros jugadores que terminan bien con endTurnWithNextParticipants: turnTimeout: matchData: completionHandler: y se dirige al segundo jugador.

Cuando el segundo jugador hace su turno, actualiza los datos del partido y actualiza a los siguientes participantes, intenta llamar al mismo finalTurnWithNextParticipants: turnTimeout: matchData: completionHandler: sin embargo, recibo un error.

GKErrorDomainCode = 17 "las operaciones solicitadas no se pudieron completar porque uno o más de los parameters no son válidos"

La variedad de los próximos participantes parece estar bien. Todo lo que hago es poner al jugador actual al final de la matriz de participantes, el turnTimeOut parece estar bien, hago lo mismo que hice la primera vez, y la matchdata debería estar bien también.

¿Hay algo que me falta? Lo único que puedo decir es que no estoy aceptando apropiadamente la invitación al juego o algo por el estilo. Sin embargo, la documentation no está clara para mí.

He intentado depurar esto durante horas.

Agradecería cualquier ayuda que me puedas dar! Muchas gracias.

Tuve el mismo problema (o al less similar), pero encontré una salida. El object que recibe (gamedata) no debe pasarse como un pastel. En mi proyecto, necesitaba tomar los datos, convertirlos a objects del juego, procesarlos con los datos que se manipularon y luego convertirlos de nuevo a un package de datos y luego enviarlos al siguiente jugador.

Para mí, es la única forma en que puede procesar los datos de forma segura, sin mutar la fuente original.

Mucha suerte, espero que haya ayudado.