2013-04-11 62 views
3

我想實現一個基於回合的應用程序,發送轉數據沒有問題,但我看不到自動接收數據的方法。到目前爲止,我已經發現了很多:GKTurnBasedMatch接收數據

  • 有一個GKTurnBasedEventHandlerDelegate - 方案。這很容易實現,但是我可以在哪裏設置該對象作爲委託的代理?它似乎不是GKTurnBasedMatchGKTurnBasedMatchmakerViewControllerGKMatchMaker的代表。

  • 還有的GKTurnBasedMatch被稱爲loadMatchDataWithCompletionhandler的方法,但是,據我瞭解,它只是調用一次,當你還挺有感覺:比賽需要更新。我怎麼知道它必須更新?我是否必須每隔一秒左右開啓一次該功能?

在此先感謝。

更新:我已將[GKTurnBasedEventHandler sharedTurnBasedEventHandler].delegate設置爲實施GKTurnBasedEventHandlerDelegate的靜態實例。它仍然不會被調用。

回答

3

您下面的語句設置,它就會變成一個共享實例的委託:

[[GKTurnBasedEventHandler sharedTurnBasedEventHandler] setDelegate:self]; 

您不必手動調用loadMatchDataWithCompletionhandler實際上,當參與者之一叫endTurnWithMatchData所有其他參與者通知通過GKTurnBasedEventHandler委託方法:

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

這就是你需要更新UI。請注意,模擬器不支持GKTurnBasedEventHandler委託方法,它們只能在實際設備中調用。

+0

其實,我目前正在模擬器上運行它。遺憾的是它在那裏不起作用。 – arik 2013-04-11 21:33:38