2013-02-17 2 views
7

이것은 this question의 후속 조치입니다. 에 대한 콜백을받지 못하면 응답을 시도하십시오.handleTurnEventForMatch : didBecomeActive : 일부 시간에만 도착하는 콜백

내 게임에서 일부 이벤트 알림 만 수신합니다. 하지만 matchMakerViewController으로 돌아가서 경기를 다시로드하면 상태가 항상 정확합니다.

내 게임은 매 회전마다 턴 상태를 여러 번 업로드합니다. 일화 적으로, 상대방의 턴에 대해 다른 장치가 하나의 알림을받는 경우 동일한 차례에 대한 추가 알림을받지 못할 가능성이 적습니다. 그러나 이것은 100 %가 아닙니다.

일반적으로 내 인터넷 연결은 꽤 잘 작동하는 것 같습니다.

어떤 아이디어가 원인 일 수 있습니까?

+0

같은 문제가 있습니다. 응용 프로그램이 시작되면 동일한 일치 시간 동안 호출 된 handleTurnEventForMatch 메서드가 호출됩니다. – Sergio

+0

정확하게 똑같은 문제가 있습니다. 대개 한 대의 장치 만 다른 장치로 전송할 수 있으며 다른 장치는 응답 할 수 없습니다. 하지만 일방적 인 방향은 성냥과 일치하는 것과 다릅니다. –

답변

8

나는 마침내 문제를 알아 냈습니다.

괜찮 으면 GKTurnBasedMatchmakerViewController을 사용하면 현재 위임자에서 위임을 도용합니다.

그것은 아마도 같은 것을 가지고있다 : 변화가 게임 센터에서 발생하는 경우가 GKTurnBasedEventHandler에 대한 위임하게되도록의 ViewController가 업데이트해야으로이 완벽 의미가

[GKTurnBasedEventHandler sharedTurnBasedEventHandler].delegate = self; 

.

당신이이 줄을 놓아야하지만 자신의 개체에 위임을 반환 할 경우 : GKTurnBasedMatchmakerViewControllerDelegate 프로토콜에서 모든 함수의 맨 위에

[GKTurnBasedEventHandler sharedTurnBasedEventHandler].delegate = self; 

합니다.

+2

시간을 절약 할 수 있습니다. 감사! –

+0

일부 사람들에게 이것이 효과적이기 때문에 기쁩니다. 슬프게도, 그것은 나를 위해 일하는 것처럼 보이지 않습니다. –

+1

동일한 문제가 발생했지만 제안 된 해결책이 도움이되지 않습니다 (예 : iOS 6.1.x 등). 저는 위임자가 여전히이 프로토콜의 모든 기능 중 맨 위에 있기를 원합니다. 이들 중 어느 것도 실패하지 않습니다. Apple이 GKTurnBasedMatchmakerViewController 구현에서 대리인을 훔치려는 경우 왜 이러한 함수를 호출하기 전에 값을 복원하지 않습니까? – Drux