所以,我为我的 ASIHTTPRequest 和一个网络队列创建了一个单例类。它在后台下载文件没有问题。但是,因为我是从一个视图开始下载,然后用户可以选择更改选项卡以查看下载队列。当我切换到选项卡时,进度条没有更新。我不确定如何在另一个视图控制器中获取进度条以进行更新。
if (!self.queue) {
appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
self.queue = [[[ASINetworkQueue alloc] init] autorelease];
[self.queue setMaxConcurrentOperationCount:1];
[self.queue setDownloadProgressDelegate:self];
}
ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
[request setDownloadDestinationPath:desPath];
[request setDelegate:self];
[request setDidFinishSelector:@selector(requestDone:)];
[request setDidFailSelector:@selector(requestWentWrong:)];
[self.queue addOperation:request]; //queue is an NSOperationQueue
[self.queue go];
那么问题来了:既然上面的代码是在后台运行的,那么如何设置setDownloadProgressDelegate来更新另一个视图控制器中的progressView呢?我已经有一个包含要下载的文件的 tableview,并且在 tableview 上方有一个视图,应该显示正在下载的文件的进度。添加到队列和下载不是问题。它只是让进度条更新。