【发布时间】:2012-12-13 23:22:17
【问题描述】:
所以这个问题已经被问过很多次了,但所有的答案都是我们不再支持的 ASIHTTP 库。
所以我希望有人能引导我朝着正确的方向前进。 我使用 NSData 在我的应用程序中下载文件(图像/视频),并且想知道如何显示实际跟踪下载进度的进度条/指示器(即 20%、30% 等)
是否有任何内置类允许使用进度更新跟踪文件下载?
【问题讨论】:
标签: ios download nsdata progress
所以这个问题已经被问过很多次了,但所有的答案都是我们不再支持的 ASIHTTP 库。
所以我希望有人能引导我朝着正确的方向前进。 我使用 NSData 在我的应用程序中下载文件(图像/视频),并且想知道如何显示实际跟踪下载进度的进度条/指示器(即 20%、30% 等)
是否有任何内置类允许使用进度更新跟踪文件下载?
【问题讨论】:
标签: ios download nsdata progress
如果您有 NSURLConnection 代表,那么:
connection:didReceiveResponse: 的NSURLResponse 将是NSHTTPURLResponse 类型。如果您访问[[response allHeaderFields] valueForKey:@"Content-Length"],您将获得一个字符串,其中包含您期望接收的数据长度;connection:didReceiveData:的数据积累,你就会知道返回了多少数据。既然您知道您收到了多少字节以及您期望多少字节,您就可以很容易地计算出百分比。
【讨论】:
[NSData dataWithContentsOfURL:]?您必须切换到在NSURLConnection 上创建一个完整的并分配一个代表。因此,您将使用 connectionWithRequest:delegate: 创建合适的 NSURLRequest 和 NSURL。
ASIHTTP 有几个替代选项。领先的是AFNetworking。它包括对下载进度条的支持。
【讨论】:
查看 ASIHTTPRequest 。太棒了,会做更多更奇妙的事情。
【讨论】: