GKTurnBasedMatch接收数据

时间:2013-04-11 19:48:18

标签: ios objective-c game-center gkturnbasedmatch

我正在尝试实现基于回合制的应用,发送转弯数据没有问题,但我看不到自动接收数据的方法。到目前为止,我发现了很多:

  • 有一个GKTurnBasedEventHandlerDelegate - 协议。它很容易实现,但是我在哪里将该对象设置为委托的委托?它似乎不是GKTurnBasedMatchGKTurnBasedMatchmakerViewControllerGKMatchMaker的代表。

  • 还有一种GKTurnBasedMatch的方法叫做loadMatchDataWithCompletionhandler,但据我所知,只有当你有一种直觉感觉匹配需要时它才被调用一次要被更新。我怎么知道它必须更新?我是否需要每隔一秒左右触发此功能?

提前致谢。

更新:我已将[GKTurnBasedEventHandler sharedTurnBasedEventHandler].delegate设置为实现GKTurnBasedEventHandlerDelegate的静态实例。它仍然永远不会被召唤。

1 个答案:

答案 0 :(得分:3)

您可以使用以下语句设置它,它将成为共享实例的委托:

[[GKTurnBasedEventHandler sharedTurnBasedEventHandler] setDelegate:self];

您无需亲自手动拨打loadMatchDataWithCompletionhandler,当其中一位与会者致电endTurnWithMatchData时,所有其他与会者将通过GKTurnBasedEventHandler委托方式通知:

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

这就是您需要更新UI的地方。请注意,模拟器不支持GKTurnBasedEventHandler委托方法,它们只能在实际设备中调用。