ios callback notifications gamekit gkturnbasedmatch

ios - handleTurnEventForMatch: didBecomeActive: las devoluciones de llamada solo llegan en parte del tiempo



callback notifications (1)

Esta es una continuación de esta pregunta . Si no recibe ninguna devolución de llamada para handleTurnEventForMatch:didBecomeActive: pruebe la respuesta allí.

En mi juego, solo recibo notificaciones de turnos de eventos algunas veces. Pero si vuelvo al matchMakerViewController y matchMakerViewController a cargar la coincidencia, el estado siempre es correcto.

Mi juego carga el estado de giro varias veces durante cada turno. Anecdóticamente, parece que si el otro dispositivo recibe una notificación para el turno de un oponente, es menos probable que reciba más notificaciones para ese mismo turno. Sin embargo, esto no es 100%.

En general, mi conexión a Internet parece funcionar bastante bien.

¿Alguna idea de lo que podría estar causando esto?


Finalmente descubrí el problema.

De acuerdo, si usas el GKTurnBasedMatchmakerViewController , robará la delegación de tu delegado actual.

Probablemente tiene algo así como:

[GKTurnBasedEventHandler sharedTurnBasedEventHandler].delegate = self;

Esto tiene mucho sentido ya que el controlador de vista necesita actualizarse cuando ocurren cambios desde GameCenter, por lo que se convierte en el delegado de GKTurnBasedEventHandler .

Si desea devolver la delegación a su propio objeto, debe poner esta línea:

[GKTurnBasedEventHandler sharedTurnBasedEventHandler].delegate = self;

En la parte superior de todas las funciones del protocolo GKTurnBasedMatchmakerViewControllerDelegate .