单个ProgressView用于多个文件下载任务

时间:2014-12-12 14:22:39

标签: ios objective-c asynchronous objective-c-blocks nsurlrequest

使用:ASIHTTPRequest,AFNetworking,RestKit。

我有多个图像/文件要通过异步调用Web服务进行下载。

我在下载过程中展示了SVProgressHUD(活动指标 )。

直到这一点,一切正常。

现在,我的客户希望我在正在下载的文件的视图上显示单个Progress Bar ,以便让用户了解所需的大致时间。

问题:如何获取正在下载的文件的合并时间/大小异步

我愿意使用任何符合此目的的API。我希望我在这里有意义。

困难时期。任何提示?

2 个答案:

答案 0 :(得分:3)

看一下NSProgress,它不是UIKit类,但允许你创建NSProgress的多个实例(每个活动一个),然后获得一个可以连接到UI的组合进度值。

这里有一个很好的例子,有例子: http://oleb.net/blog/2014/03/nsprogress/

您基本上使用KVO来读取进度值,然后更新您的UI元素,即进度条。

答案 1 :(得分:1)

一个选项是使用“head”请求获取所有文件的长度,然后自己计算: 下载的数据量/总数据长度。

这篇文章将帮助您获得总内容长度:Objective-c Check file size from URL without downloading

其他选项 - 开始在单独的线程中下载每个文件,并使用共享变量来获取合并时间。

希望这有帮助。