【问题标题】:handleTurnEventForMatch:didBecomeActive: callbacks only arriving some of the timehandleTurnEventForMatch:didBecomeActive:回调仅在某些时候到达
【发布时间】:2013-02-17 18:07:41
【问题描述】:

这是this question 的后续行动。如果您没有收到对handleTurnEventForMatch:didBecomeActive:任何回调,请尝试那里的答案。

在我的游戏中,我有时只会收到回合事件通知。但是如果我回到matchMakerViewController 并重新加载比赛,状态总是正确的。

我的游戏在每个回合中多次上传回合状态。有趣的是,似乎如果另一台设备收到一个关于对手轮到的通知,它就不太可能收到关于同一轮的进一步通知。但是,这不是 100%。

总的来说,我的互联网连接似乎运行良好。

任何想法可能导致这种情况?

【问题讨论】:

  • 有同样的问题。当应用程序启动时,handleTurnEventForMatch 方法会调用相同的匹配时间。
  • 遇到完全相同的问题。大多数时候只有一个设备可以发送给另一个,而另一个不能回复。但它的单向方向因比赛而异。

标签: ios callback notifications gamekit gkturnbasedmatch


【解决方案1】:

我终于找到了问题所在。

好的,如果您使用GKTurnBasedMatchmakerViewController,那么它会从您当前的委托中窃取委托。

它可能有类似的东西:

[GKTurnBasedEventHandler sharedTurnBasedEventHandler].delegate = self;

这很有意义,因为当游戏中心发生更改时,视图控制器需要更新,因此它成为 GKTurnBasedEventHandler 的委托。

如果您想将委托返回给您自己的对象,但您应该输入以下行:

[GKTurnBasedEventHandler sharedTurnBasedEventHandler].delegate = self;

GKTurnBasedMatchmakerViewControllerDelegate 协议中所有功能的最顶端。

【讨论】:

  • 你为我节省了大量时间。谢谢!
  • 我很高兴这对某些人有用。唉,它似乎对我不起作用。
  • 我遇到了同样的问题,但您建议的解决方案没有帮助(在 iOS 6.1.x 上)。我断言委托仍然是我希望它成为上述协议中所有功能的最顶端的东西,并且这些都没有失败。如果 Apple 在其 GKTurnBasedMatchmakerViewController 的实现中窃取了委托,为什么它不会在调用这些函数之前恢复该值?
  • 这是唯一的原因,handleTurnEventForMatch 没有被调用。 +1
猜你喜欢
  • 2012-02-11
  • 2015-10-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-01
  • 1970-01-01
  • 2018-12-11
相关资源
最近更新 更多