1

我有一个应用程序,我试图从 URL 下载图像/视频等文件。目前我正在使用大中央调度在我的主线程上建立异步 NSURL 连接,所以它确实

=

4

3 回答 3

0

试试我的回答:

如果您想下载多个文件,则必须使用 HCDownloadViewController,因为它会创建下载队列。在下面的链接中查看我的答案。

iOS NSURLConnection 不从某些 URL 下载文件

于 2013-05-09T05:20:44.880 回答
0

代替在主线程上的异步 NSURConnections,在后台线程上运行同步的 NSURLConnections。我建议创建一个 NSOperationQueue 而不是直接使用 GCD,因为它更容易。使用 -addOperationWithBlock: 或通过创建 NSOperation 子类来排队您的请求。除非您另外指定,否则它们一次只会运行一个。

于 2013-05-08T20:13:13.713 回答
0

AFNetworking 是一个漂亮的库,可以满足您的大部分需求。在这里 你只需要

1)初始化一个主队列(NSOPerationqueue),并将其最大并发操作设置为您想要的值。使用 2,我很好,并且该应用程序响应速度非常快(从 flickr.com 下载大量图像。

2)将您的内存缓存 NSURLCache 配置为适当的值 - 需要一些测试以适合您的应用程序使用 -

3)当您下载图像或视频时,决定应将哪个缓存策略应用于 URLRequest(使用缓存、忽略缓存等)请注意,某些服务器不会发送缓存信息标头,因此除非您手动检查,否则可能总是会发生重新验证缓存内容,并提取图像(在这种情况下,显示非常非常快)。如果您有大量图像,重新验证可能需要一些时间。

4) 通过标准单例访问此队列。

5)将您的操作排入该队列。

这具有低内存占用,并且工作得非常好。

瞧!

注意:你在清理 [downloadArray addObject:imageObject]; 在某一点 ?注意:没有正确读取,但对于您的情况,您可能希望将最大操作设置为 1

于 2013-05-08T22:41:51.077 回答