3

ターン ベースのアプリを実装しようとしています。ターン データの送信には問題はありませんが、データを自動的に受信する方法がわかりません。これまでのところ、私は多くのことを発見しました:

  • プロトコルがありGKTurnBasedEventHandlerDelegateます。実装は簡単ですが、そのオブジェクトをデリゲートにする必要があるもののデリゲートになるように設定するにはどうすればよいでしょうか。GKTurnBasedMatch、またはGKTurnBasedMatchmakerViewController、またはのデリゲートではないようですGKMatchMaker

  • GKTurnBasedMatchと呼ばれるメソッドもありますがloadMatchDataWithCompletionhandler、私が理解している限り、試合を更新する必要があると直感したときに一度だけ呼び出されます。更新する必要があることをどのように知ることができますか? この関数を毎秒起動する必要がありますか?

前もって感謝します。

更新: を[GKTurnBasedEventHandler sharedTurnBasedEventHandler].delegate実装する静的インスタンスに設定しましたGKTurnBasedEventHandlerDelegate。それはまだ呼び出されません。

4

1 に答える 1

3

以下のステートメントで設定すると、共有インスタンスのデリゲートになります。

[[GKTurnBasedEventHandler sharedTurnBasedEventHandler] setDelegate:self];

loadMatchDataWithCompletionhandler実際に手動で呼び出す必要はありません。参加者の 1 人が他のすべての参加者に電話をかけると、デリゲート メソッドendTurnWithMatchDataを通じて通知されます。GKTurnBasedEventHandler

-(void) handleTurnEventForMatch:(GKTurnBasedMatch *)match didBecomeActive:(BOOL)didBecomeActive

ここで、UI を更新する必要があります。シミュレーターはデリゲート メソッドをサポートしていないことに注意してくださいGKTurnBasedEventHandler 。デリゲート メソッドは実際のデバイスでのみ呼び出されます。

于 2013-04-11T21:21:31.940 に答える