1

我想在多个按钮单击时执行下载,这些按钮是动态创建的。每个按钮都分配有不同的 url。

我想同时进行多个下载操作,也想在不同UIProgressView的s上更新每次下载的下载进度。

有人告诉我要使用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]);
}
4

2 回答 2

1

简单地将新的操作/请求添加到队列中:

  [networkQueue addOperation:<#(NSOperation *)#>]
  [networkQueue addOperations:<#(NSArray *)#> waitUntilFinished:<#(BOOL)#>]

您可以通过设置以下内容来跟踪特定请求的进度:

  [request setDownloadProgressDelegate:<#(id)#>]

// 如果 downloadProgressDelegate 是 NSProgressIndicator,我们将它的 MaxValue 设置为 1.0,这样我们就可以像 UIProgressView 一样更新它

于 2012-04-26T13:03:09.173 回答
1

我相信 ASI 已经不再被支持了。我的公司已经开始使用 RestKit 作为替代方案,仅供参考。查看他页面顶部的标题:http: //allseeing-i.com/ASIHTTPRequest/

于 2012-04-26T13:19:50.867 回答