ios - GKTurnBasedMatch 接收数据

标签 ios objective-c game-center gkturnbasedmatch

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

  • 有一个 GKTurnBasedEventHandlerDelegate 协议(protocol)。它很容易实现,但是我在哪里可以将该对象设置为它必须代表的任何对象的代表呢?它似乎不是 GKTurnBasedMatchGKTurnBasedMatchmakerViewControllerGKMatchMaker 的委托(delegate)。

  • 还有一个 GKTurnBasedMatch 方法叫做 loadMatchDataWithCompletionhandler,但据我所知,它只在你有一个直觉认为比赛需要更新。我怎么知道它必须更新?我是否必须每隔一秒左右触发一次此功能?

提前致谢。

更新:我已将 [GKTurnBasedEventHandler sharedTurnBasedEventHandler].delegate 设置为实现 GKTurnBasedEventHandlerDelegate 的静态实例。它仍然没有被调用。

最佳答案

你用下面的语句设置它,它成为一个共享实例的委托(delegate):

[[GKTurnBasedEventHandler sharedTurnBasedEventHandler] setDelegate:self];

实际上您不需要手动调用 loadMatchDataWithCompletionhandler,当其中一个参与者调用 endTurnWithMatchData 时,所有其他参与者将通过 GKTurnBasedEventHandler 委托(delegate)通知方法:

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

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

关于ios - GKTurnBasedMatch 接收数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15957576/

相关文章:

objective-c - 如何从 macOS 命令行工具使用 Apple 的 GameController 框架?

objective-c - 添加C文件导致pch错误

ios - iOS 10 中的游戏中心玩家照片

ios - 游戏中心和安全

ios - 动态编辑 3d touch 快捷方式列表

ios - 如何正确转义%符号

iphone - 通过 UIView 更改 MaskedLayer 的大小

ios - Game Center 未经身份验证,在 iOS 12 中请求身份验证

ios - 如何在 Objective-C 中使用 startMonitoringForRegion 扫描多个区域

ios - 如果文本字段是 myTextField { 条件 }