我目前正在使用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会显示两个实例都已更新,表明两个实例都能够接收事件。可能导致这种情况的原因是什么?
答案 0 :(得分:2)
我在iOS 7 / Xcode 5 / iPhone 5上遇到了同样的问题。 要解决该问题,您只需将“Game Center”权利添加到您的App ID即可。您可以通过导航到Xcode中项目的“功能”选项卡来实现这一目的。
请注意,player:receivedTurnEventForMatch:didBecomeActive:
仅会在设备上触发。
答案 1 :(得分:1)
我在模拟器上发现此问题的解决方法是调用
loadMatchDataWithCompletionHandler:
在UI中按下刷新按钮时的方法,这会导致匹配数据在模拟器中加载。