我有一个应用程序,我试图从URL下载图像/视频等文件。目前我使用宏中央调度在我的主线程上建立异步NSURL连接,所以它
=
答案 0 :(得分:0)
而不是主线程上的异步NSURConnections,在后台线程上运行同步NSURLConnections。我建议创建一个NSOperationQueue而不是直接使用GCD,因为它更容易。使用-addOperationWithBlock:或通过创建NSOperation子类来排队您的请求。除非您另有说明,否则它们一次只能运行一个。
答案 1 :(得分:0)
AFNetworking是一个美丽的图书馆,可以满足您的大部分需求。 here 你只需要
1)初始化主队列(NSOPerationqueue),并将其最大并发操作设置为所需的值。 2,我很好,应用程序非常敏感(从flickr下载大量图像。
2)将您的内存缓存NSURLCache配置为适当的值 - 需要一些测试以适合您的应用程序使用 -
3)下载图像或视频时,确定哪个缓存策略应该应用于URLRequest(使用缓存,忽略缓存等...),请注意某些服务器不发送缓存信息标题,因此可能始终会进行重新验证您手动检查缓存内容,并提取图像(在这种情况下,显示非常快)。如果您有足够的图像,重新验证可能需要一些时间。
4)通过标准单例访问此队列。
5)将您的操作排入该队列。
内存占用率低,效果非常好。
et voila!
注意:你正在清理[downloadArray addObject:imageObject];在某一点 ? 注意:没有正确读取,但对于您的情况,您可能希望将最大操作设置为1
答案 2 :(得分:0)
试试我的回答:
如果您要下载多个文件,则必须使用HCDownloadViewController,因为它会创建下载队列。请在下面的链接中查看我的答案。