手机
当前位置:查字典教程网 >编程开发 >IOS开发 >iOS开发:ASIHTTPRequest进度追踪
iOS开发:ASIHTTPRequest进度追踪
摘要:本文为大家介绍了发ASIHTTPRequest进度追踪的内容,其中包括追踪单个request的下载进度,追踪一系列request的下载进度,...

本文为大家介绍了发ASIHTTPRequest进度追踪的内容,其中包括追踪单个request的下载进度,追踪一系列request的下载进度,追踪单个request的上传进度,追踪一系列request的上传进度,精确进度条vs简单进度条,自定义进度追踪等等内容。

每个ASIHTTPRequest有两个delegate用来追踪进度:

downloadProgressDelegate (下载) 和 uploadProgressDelegate (上载)。

进度delegate可以是NSProgressIndicators (Mac OS X) 或者 UIProgressViews (iPhone).ASIHTTPRequest会自适应这两个class的行为。你也可以使用自定义class作为进度delegate,只要它响应setProgress:函数。

如果你执行单个request,那么你需要为该request设定upload/download进度delegate

如果你在进行多个请求,并且你想要追踪整个队列中的进度,你必须使用ASINetworkQueue并设置队列的进度delegate

如果上述两者你想同时拥有,恭喜你,0.97版以后的ASIHTTPRequest,这个可以有 ^ ^

IMPORTANT:如果你向一个要求身份验证的网站上传数据,那么每次授权失败,上传进度条就会被重置为上一次的进度值。因此,当与需要授权的web服务器交互时,建议仅当useSessionPersistence为YES时才使用上传进度条,并且确保你在追踪大量数据的上传进度之前,先使用另外的request来进行授权。

追踪小于128KB的数据上传进度目前无法做到,而对于大于128kb的数据,进度delegate不会收到第一个128kb数据块的进度信息。这是因为CFNetwork库API的限制。我们曾向apple提交过bug报告(bug id 6596016),希望apple能修改CFNetwork库以便实现上述功能。

2009-6-21:Apple的哥们儿们真棒!iPhone 3.0 SDK里,buffer大小已经被减小到32KB了,我们的上传进度条可以更精确了。

追踪单个request的下载进度

这个例子中, myProgressIndicator是个 NSProgressIndicator.

ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];

[request setDownloadProgressDelegate:myProgressIndicator];

[request startSynchronous];

NSLog(@"Max: %f, Value: %f", [myProgressIndicator maxValue],[myProgressIndicator doubleValue]);

追踪一系列request的下载进度

在这个例子中, myProgressIndicator 是个 UIProgressView, myQueue是个 ASINetworkQueue.

- (void)fetchThisURLFiveTimes:(NSURL *)url

{

[myQueue cancelAllOperations];

[myQueue setDownloadProgressDelegate:myProgressIndicator];

[myQueue setDelegate:self];

[myQueue setRequestDidFinishSelector:@selector(queueComplete:)];

int i;

for (i=0; i

【iOS开发:ASIHTTPRequest进度追踪】相关文章:

iOS开发:内置URL schemes

iOS开发:UI Tests探索笔记

iOS开发:UIView动画详解

iOS开发之离线地图核心代码

iOS开发定时器的三种方法分享

iOS开发之路--微博“更多”页面

iOS开发:可交互原型的最佳实践

举例详解iOS开发过程中的沙盒机制与文件

iOS开发之事件传递响应链

iOS开发:Web应用简单本地化

精品推荐
分类导航