player:receivedTurnEventForMatch:didBecomeActive:不一致/很少发生火灾

时间:2013-12-12 20:24:21

标签: ios objective-c game-center gkturnbasedmatch

我目前正在使用Game Center Sandbox测试我的Game Center Aware App,其中一个实例在iOS模拟器上运行,另一个在Retina iPad Mini上运行。我有一个需要接收转弯事件的视图控制器,所以我实现了方法

player:receivedTurnEventForMatch:didBecomeActive:

在我的UIViewController子类采用的GKLocalPlayerListener协议中,然后使用此行注册事件

[[GKLocalPlayer localPlayer] registerListener: self];

在视图控制器的init方法中。然而,尽管游戏中心应用程序说游戏的两个实例已经连接,但这种方法在iPad上很少被调用,我不认为我曾经见过模拟器实例调用它。但是,转到Game Center App会显示两个实例都已更新,表明两个实例都能够接收事件。可能导致这种情况的原因是什么?

2 个答案:

答案 0 :(得分:2)

我在iOS 7 / Xcode 5 / iPhone 5上遇到了同样的问题。 要解决该问题,您只需将“Game Center”权利添加到您的App ID即可。您可以通过导航到Xcode中项目的“功能”选项卡来实现这一目的。

请注意,player:receivedTurnEventForMatch:didBecomeActive:仅会在设备上触发。

答案 1 :(得分:1)

我在模拟器上发现此问题的解决方法是调用

loadMatchDataWithCompletionHandler:

在UI中按下刷新按钮时的方法,这会导致匹配数据在模拟器中加载。