2014-09-19 36 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