2014-09-19 59 views
0

我有一个相当复杂的iPad应用程序已经在App商店几个月来广泛使用的NSURLSession与Web服务器上.PHP文件交互读取和写入文件Web服务器。该应用程序的网络部分现在可以间歇性地(或根本不在)正在运行的设备上运行iOS 8。有没有人看到他们的应用程序出现类似的情况?的iOS 8引起麻烦NSURLSession

我会在本周末开始艰苦的取证工作,但我想先在这里问一下,看看是否有其他人遇到过这个问题。

我还没有发现在苹果文档有关NSURLSession和iOS 8.任何已知问题我已经重新编译应用程序与的XCode 6.0.1和测试设备上运行它,它仍然表现出相同的行为。

回答

2

我找到了解决方案,但无法解释它为什么是解决方案。这是我用它来建立NSURLSession代码:

NSURLSessionConfiguration *sessionConfig = [NSURLSessionConfiguration defaultSessionConfiguration]; 
sessionConfig.allowsCellularAccess = YES; 
sessionConfig.timeoutIntervalForRequest = 30; 
sessionConfig.timeoutIntervalForResource = 60; 
sessionConfig.HTTPMaximumConnectionsPerHost = 1; 
sessionConfig.URLCache = NULL; 

//Create the session with the newly created sessionConfig. 
session = [NSURLSession sessionWithConfiguration:sessionConfig delegate:self delegateQueue:nil]; 

这行代码是

sessionConfig.HTTPMaximumConnectionsPerHost = 1; 

我只是增加了1至10和中提琴的罪魁祸首,它工作正常在iOS 8以及现在。我不知道为什么它在iOS 7上完美运行,其值设置为1,但不在iOS 8上。我能想到的唯一情况是Apple可能会更改NSURLSession的内部工作方式。

+0

我有同样的问题。我使用NSOperationQueueDefaultMaxConcurrentOperationCount让iOS决定每个主机的连接数量,但似乎自iOS 8以来失败。 – 2014-11-22 15:16:25