我想在多次点击按钮上执行下载,这些按钮是动态创建的。每个按钮都分配有不同的网址。
我想同时执行多个下载操作,并且还希望更新不同UIProgressView
上每个下载的下载进度。
有人告诉我要使用ASINetworkQueue
方法,但在这个方法中,如何动态地向队列添加请求?或者是否有其他方式或示例代码?
请帮忙。
示例代码:
- (void)fetchThisURLFiveTimes:(NSURL *)url
{
[myQueue cancelAllOperations];
[myQueue setDownloadProgressDelegate:myProgressIndicator];
[myQueue setDelegate:self];
[myQueue setRequestDidFinishSelector:@selector(queueComplete:)];
int i;
for (i=0; i<5; i++) {
ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
[myQueue addOperation:request];
}
[myQueue go];
}
- (void)queueComplete:(ASINetworkQueue *)queue
{
NSLog(@"Value: %f", [myProgressIndicator progress]);
}
答案 0 :(得分:1)
简单地向队列添加新的操作/请求:
[networkQueue addOperation:<#(NSOperation *)#>]
[networkQueue addOperations:<#(NSArray *)#> waitUntilFinished:<#(BOOL)#>]
您可以通过设置:
来跟踪特定请求的进度 [request setDownloadProgressDelegate:<#(id)#>]
//如果downloadProgressDelegate是NSProgressIndicator,我们设置 它的MaxValue为1.0,所以我们可以更新它,好像它是一个UIProgressView
答案 1 :(得分:1)
我相信ASI已经不再受到支持了。我的公司已开始使用RestKit作为替代方案,仅供参考。请参阅页面顶部的标题:http://allseeing-i.com/ASIHTTPRequest/