Ios GKTurnBasedMatch接收数据
我正在尝试实现一个基于回合的应用程序,发送回合数据没有问题,但我看不到自动接收数据的方法。到目前为止,我发现了很多:Ios GKTurnBasedMatch接收数据,ios,objective-c,game-center,gkturnbasedmatch,Ios,Objective C,Game Center,Gkturnbasedmatch,我正在尝试实现一个基于回合的应用程序,发送回合数据没有问题,但我看不到自动接收数据的方法。到目前为止,我发现了很多: 有一个gkturnbasedeventhandlerregate-协议。这很容易实现,但是我应该在哪里将该对象设置为它必须是的任何对象的委托?它似乎不是GKTurnBasedMatch,或GKTurnBasedMatchmakerViewController,或GKMatchMaker的委托 还有一种方法叫GKTurnBasedMatch,叫做loadMatchDataWith
- 有一个
-协议。这很容易实现,但是我应该在哪里将该对象设置为它必须是的任何对象的委托?它似乎不是gkturnbasedeventhandlerregate
,或GKTurnBasedMatch
,或GKTurnBasedMatchmakerViewController
的委托GKMatchMaker
- 还有一种方法叫
,叫做GKTurnBasedMatch
,但是,据我所知,只有当你感觉匹配需要更新时才会调用一次。我怎么知道它必须更新?我是否必须每隔一秒钟左右启动此功能loadMatchDataWithCompletionhandler
更新:我已将
[GKTurnBasedEventHandler sharedTurnBasedEventHandler].delegate
设置为实现GKTurnBasedEventHandler委托的静态实例。它仍然不会被调用。您使用下面的语句设置它,它将成为共享实例的委托:
[[GKTurnBasedEventHandler sharedTurnBasedEventHandler] setDelegate:self];
实际上,您不需要手动调用loadMatchDataWithCompletionhandler
,当其中一个参与者调用endTurnWithMatchData
时,将通过GKTurnBasedEventHandler
委托方法通知所有其他参与者:
-(void) handleTurnEventForMatch:(GKTurnBasedMatch *)match didBecomeActive:(BOOL)didBecomeActive
这就是您需要更新UI的地方。请注意,模拟器不支持GKTurnBasedEventHandler
委托方法,它们只在实际设备中被调用。实际上,我目前正在模拟器上运行此方法。可惜它在那里不起作用。