我正在使用GameKit工作一段时间。几乎一切都很好。我有一个主要问题,session:peer:didChangeState:
方法在恢复后没有被调用。
在Apple示例GKRocket中,如果应用程序暂停(willTerminate)并在其返回时设置(willResume),会话将被销毁。对于我的应用程序,最好保持会话。
在我可以看到的日志中,当应用程序挂起时,会调用状态为GKPeerStateUnavailable的session:peer:didChangeState:
,但是在恢复使用GKPeerStateAvailable的调用后不会显示。会议可用。但即使是新客户也无法找到该设备。
我使用SessionModes服务器/客户端。
提前感谢您的帮助!
答案 0 :(得分:0)
前段时间我正在玩会话,但有一些建议......
- 恢复后,如果您尝试从正在睡觉的设备发送打包到清醒的设备会发生什么?它会通过吗?
- 你需要GKPeerStateUnavailable / available吗?根据我的经验,您需要使用的是applicationDidBecomeActive和applicationWillResignActive方法:当您进入睡眠状态时,您可以在唤醒时将GAME_PAUSED发送到其他设备 - GAME_UNPAUSED。如果用户将应用程序置于睡眠状态然后关闭它 - 好吧,运气不好,其他玩家将永远坐在那里(所以你可以选择退出主菜单)。这种方法适用于苹果(在批准方面) - 在两个应用程序上测试。 此致!