2013-02-17 11 views
7

これはthis questionへのフォローアップです。 のコールバックがhandleTurnEventForMatch:didBecomeActive:に届いていない場合は、そこで回答を試してください。handleTurnEventForMatch:didBecomeActive:いくつかの時間だけ到着するコールバック

私のゲームでは、ターンイベント通知を受け取っているだけです。しかし、私がmatchMakerViewControllerに戻ってマッチを再ロードすると、状態は常に正しいです。

私のゲームは、各ターンに複数回ターンの状態をアップロードします。偶然にも、他の装置が相手のターンの通知を1つ受信した場合、同じターンのさらなる通知を受信する可能性は低いようです。しかし、これは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

関連する問題