我找到了解决方案,但无法解释它为什么是解决方案。这是我用它来建立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的内部工作方式。
我有同样的问题。我使用NSOperationQueueDefaultMaxConcurrentOperationCount让iOS决定每个主机的连接数量,但似乎自iOS 8以来失败。 – 2014-11-22 15:16:25