ASIHTTPRequest异步下载不取消

时间:2011-09-30 11:00:51

标签: ios ipad asynchronous asihttprequest

我正在尝试使用ASIHTTPRequest取消异步下载,没有任何乐趣。我在ViewController的外观下将电影下载到磁盘。我想要的是当用户点击关闭以关闭视图控制器我想取消下载。这是我到目前为止的代码:

提出请求:

-(void)retrieveLatestFile{

NSURL *url = [NSURL URLWithString:[appDelegate.urlToLoad stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];

ashiRequest = [[ASIHTTPRequest requestWithURL:url] retain];
[ashiRequest setUsername:@"Appidae"];
[ashiRequest setPassword:@"Dubstance1"];
[ashiRequest setDelegate:self];
[ashiRequest startAsynchronous];
[ashiRequest setDownloadProgressDelegate:progressView];
NSLog(@"Value: %f", [progressView progress]);
if ([progressView progress]==1) {
    [self hideInfoPane];
}
//NSLog(@"Max: %f, Value: %f", [myProgressIndicator maxValue],[myProgressIndicator doubleValue]);
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);

NSString *documentsDirectory = [paths objectAtIndex:0];

NSString *tempPath = [NSString stringWithFormat:@"%@/download/%@/%@", documentsDirectory, appDelegate.languageFolder,appDelegate.filename];


NSLog(@"Path: %@", tempPath);

[ashiRequest setDownloadDestinationPath:tempPath];
}

取消下载:

- (IBAction)closeDocDisplay:(id)sender {
// Cancels an asynchronous request


[ashiRequest clearDelegatesAndCancel];


[self dismissModalViewControllerAnimated:YES];
}

一切正常,下载很好,电影播放正常但是当我关闭View Controller时,请求没有被取消,我的文件仍在下载(网络活动指示器在状态栏上旋转。甚至ASIHTTP委托错误也没有不叫“

2 个答案:

答案 0 :(得分:0)

尝试使用

ashiRequest.delegate = nil; 
[ashiRequest cancel];

这应该有用。

答案 1 :(得分:0)

我弄清楚出了什么问题。我使用Reachability来调用我的retrieveLatestFileMethod。如果Reachability仅在应用程序中使用一次,可能来自代表就可以了。但我有一些实例,所以它会调用相同的函数和下载。