2013-04-11 36 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