GKTurnBasedMatch接收数据
我正在尝试实现一个基于回合的应用程序,发送转弯数据没有问题,但我看不到自动接收数据的方法。 到目前为止,我发现了很多:
-
有一个
GKTurnBasedEventHandlerDelegate
-protocol。 它很容易实现,但是我在哪里将该对象设置为它必须作为委托的委托? 它似乎不是GKTurnBasedMatch
或GKTurnBasedMatchmakerViewController
或GKMatchMaker
。 -
还有一个
GKTurnBasedMatch
的方法叫做loadMatchDataWithCompletionhandler
,但据我所知,当你有一种直觉感觉匹配需要更新时,它只被调用一次。 我怎么知道它必须更新? 我是否每隔一秒左右开一次这个function?
提前致谢。
更新:我已将[GKTurnBasedEventHandler sharedTurnBasedEventHandler].delegate
设置为实现GKTurnBasedEventHandlerDelegate
的静态实例。 它仍然永远不会被调用。
您使用以下语句设置它,它将成为共享实例的委托:
[[GKTurnBasedEventHandler sharedTurnBasedEventHandler] setDelegate:self];
实际上,您不需要手动调用loadMatchDataWithCompletionhandler
,当其中一个参与者调用endTurnWithMatchData
将通过GKTurnBasedEventHandler
委托方法通知所有其他参与者:
-(void) handleTurnEventForMatch:(GKTurnBasedMatch *)match didBecomeActive:(BOOL)didBecomeActive
这就是您需要更新UI的地方。 请注意,模拟器不支持GKTurnBasedEventHandler
委托方法,它们只能在实际设备中调用。