我正在尝试实现一个基于回合的应用程序,发送回合数据没有问题,但我看不到自动接收数据的方法。到目前为止,我已经了解了这么多:
有一个GKTurnBasedEventHandlerDelegate
-协议。它很容易实现,但是我在哪里将该对象设置为它必须成为的委托的委托?看来不是代表GKTurnBasedMatch
, or GKTurnBasedMatchmakerViewController
, or GKMatchMaker
.
还有一种方法是GKTurnBasedMatch
这就是所谓的loadMatchDataWithCompletionhandler
,但是,据我了解,只有当您有直觉认为比赛需要更新时才会调用一次。我怎么知道它必须更新?我是否必须每秒左右触发此功能?
提前致谢。
更新:我已经设置了[GKTurnBasedEventHandler sharedTurnBasedEventHandler].delegate
是一个实现的静态实例GKTurnBasedEventHandlerDelegate
。它仍然没有被调用。
您可以使用以下语句设置它,它成为共享实例的委托:
[[GKTurnBasedEventHandler sharedTurnBasedEventHandler] setDelegate:self];
您无需致电loadMatchDataWithCompletionhandler
实际上是手动的,当其中一位参与者打电话时endTurnWithMatchData
所有其他参与者将通过以下方式收到通知GKTurnBasedEventHandler
委托方法:
-(void) handleTurnEventForMatch:(GKTurnBasedMatch *)match didBecomeActive:(BOOL)didBecomeActive
这就是您需要更新 UI 的地方。注意模拟器不支持GKTurnBasedEventHandler
委托方法,它们仅在实际设备中被调用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)