我在技术说明TN2277中读到,当应用程序进入后台时,关闭所有类型的网络套接字非常重要。这很可能还包括GKSession。
他们说在转到后台时需要一个到期处理程序,并且必须异步调用网络代码(如果必须对其他对等方说“再见”),这一点非常重要。
GKSession sendData方法是异步还是阻塞?
答案 0 :(得分:1)
在iOS 6的某些情况下,GKSession肯定会出现阻塞主线程的问题。目前,我们无法将iPad池转移到iOS 6,因为我们的企业GKSession网络应用程序遇到了这些阻塞问题(但不是在iOS 5或更早版本中)。例如,从服务器iPad同时向4个以上的iPad发送文件会导致阻止行为。在iOS 5中,我们可以同时将文件发送给最多15个连接的客户端。
此外,我们的初步测试显示,如果iOS 6设备在iOS 5设备之后连接,那么使用iOS 5和6设备混合,那么iOS 6设备将会锁定主线程。
我已经在iOS开发中心发布了一个事件报告,但没有听到任何回复......
11月30日更新:我现在已经收到Apple的回复,他们将其视为iOS 6中GameKit中的一个错误,正在调查中。如果您在iOS 6中遇到GKSession阻止问题(但不是iOS 5或更早版本),那么您应该将其报告为错误。