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

Ben*_*ous 6 objective-c ios game-center gkturnbasedmatch

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

player:receivedTurnEventForMatch:didBecomeActive:
Run Code Online (Sandbox Code Playgroud)

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

[[GKLocalPlayer localPlayer] registerListener: self];
Run Code Online (Sandbox Code Playgroud)

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

Ser*_*gio 2

我在 iOS 7/Xcode 5/iPhone 5 上遇到了同样的问题。要解决该问题,您只需将“Game Center”权限添加到您的应用程序 ID 中即可。您可以通过导航到 Xcode 中项目的“功能”选项卡来完成此操作。

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