我已经在 SOF 上搜索这个问题好几天了,但我仍然没有找到解决方案(说同样的问题)。
我正在制作一个在 URL 列表中同时下载 5 个图像的应用程序(每个图像都在不同的服务器上)。
我有一个ImageDownloader
类子类NSOperation
并实现NSURLConnectionDataDelegate
.
这样我就可以在 中添加一个实例,ImageDownloader
它将在. 将下载器添加到的行在这里:operationQueue
ViewController
operationQueue
operationQueue
downloader = [[ImageDownloader alloc] init];
[downloader downloadImageWithURL:[controller.URList objectForKey:[NSString stringWithFormat:@"%d",downloadIndex]] queue:queue andTag:downloadIndex + 100]; //my custom initialize
downloader.delegate = self;
[queue addOperation:downloader]; //use the addOperation method
在iOS6中一切正常,但在iOS5中(我的测试设备上的 5.0 和我的 SDK 上的 5.1)搞砸了,它只是没有通过执行这些方法接收任何响应或数据didReceiveResponse
(didReceiveData
这两种方法没有加入)。
超过超时后,runloop 跳转到didFailWithError
方法并且程序停止。
据我了解,这意味着运行循环仍然可以运行吗?
我试图打印出来error
,我得到的只是:The request timed out
。
当我将下载实例的数量减少到 2 时,它会运行,但不会在 >=3 下载实例的情况下运行。
还有一个信息是我的网络连接确实限制了连接数。但它在iOS6上运行良好,为什么它在iOS5上不起作用?
在下载应用程序时,我仍然可以在模拟器中加载网络。
那么这是一个什么样的问题,我该如何克服这个问题呢?
提前致谢。
*更新: *由于类很多,问题还没有被清楚地发现,我将在这里分享整个项目。你可以直接从这里下载: DownloadingImage