我想使用ASIHttprequest库来下载一些文件,我正在用它们的代码进行测试,当相同的代码在它们的示例上工作时,它就不能工作了。
这是我的代码来调用他们的视图
QueueViewController *queueViewController = [QueueViewController alloc initWithNibName:@"Queue“bundle:nil];self.view addSubview:queueViewController.view;
这是发出请求的代码。
- (IBAction)fetchThreeImages:(id)sender
{
[imageView1 setImage:nil];
[imageView2 setImage:nil];
[imageView3 setImage:nil];
[networkQueue cancelAllOperations];
[networkQueue setDownloadProgressDelegate:progressIndicator];
[networkQueue setRequestDidFinishSelector:@selector(imageFetchComplete:)];
[networkQueue setShowAccurateProgress:[accurateProgress isOn]];
[networkQueue setDelegate:self];
ASIHTTPRequest *request;
request = [[[ASIHTTPRequest alloc] initWithURL:[NSURL URLWithString:@"http://allseeing-i.com/i/logo.png"]] autorelease];
[networkQueue addOperation:request];
request = [[[ASIHTTPRequest alloc] initWithURL:[NSURL URLWithString:@"http://allseeing-i.com/i/trailsnetwork.png"]] autorelease];
[networkQueue addOperation:request];
request = [[[ASIHTTPRequest alloc] initWithURL:[NSURL URLWithString:@"http://allseeing-i.com/i/sharedspace20.png"]] autorelease];
[networkQueue addOperation:request];
[networkQueue go];
}
- (void)imageFetchComplete:(ASIHTTPRequest *)request
{
UIImage *img = [UIImage imageWithData:[request responseData]];
if (img) {
if ([imageView1 image]) {
if ([imageView2 image]) {
[imageView3 setImage:img];
} else {
[imageView2 setImage:img];
}
} else {
[imageView1 setImage:img];
}
}
}看起来队列正在正确地设置,但是下载完成后不会调用imageFetchComplete方法。
发布于 2009-11-02 17:35:28
我把问题解决了,问题是我没有分配到networkQueue。
我被分配的networkQueue在从早上开始,它没有被调用。因此,我在按钮单击方法中分配networkQueue。fixEd的问题。
发布于 2009-11-02 07:36:52
尝试在您的ASINetworkQueue实例上设置ASINetworkQueue,并在每个ASIHTTPRequest实例上设置didFinishSelector和didFailSelector。从委托中的每个回调方法中调用NSLog(),查看发生了什么。
注意,通过在您的showAccurateProgress上启用ASINetworkQueue,将为队列处理的每个请求执行额外的HEAD请求。在移动环境中,这有时可能不太理想。
https://stackoverflow.com/questions/1658042
复制相似问题