2015-02-23 2 views
1
NSString *stringPath = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)objectAtIndex:0]stringByAppendingPathComponent:@"SavedImages"]; 

NSError *error = nil; 
if (![[NSFileManager defaultManager] fileExistsAtPath:stringPath]) 
    [[NSFileManager defaultManager] createDirectoryAtPath:stringPath withIntermediateDirectories:NO attributes:nil error:&error]; 
NSString *imageName = [NSString stringWithFormat:@"/savedImage1.jpg"]; 
NSString *fileName = [stringPath stringByAppendingString:imageName]; 

NSURL *url = [NSURL URLWithString:@"http://example.com/pictures/sample 

.jpg "]; ASIHTTPRequest запрос * = [ASIHTTPRequest requestWithURL: URL];Загрузка данных с использованием ASIHttpRequest

[request setDownloadDestinationPath:[NSString stringWithFormat:@"%@", stringPath]]; //use the path from earlier 
[request setDelegate:self]; 

[request startAsynchronous]; 
[request setCompletionBlock:^ 
{ 
     NSData * dataFromrequest = [request responseData]; 
    NSLog(@"request data = %@",dataFromrequest); 
    dataFromrequest writeToFile:fileName atomically:YES]; 

}];

Я использую этот код для загрузки изображения с url. Но я использую другой url вместо «http://example.com/pictures/sample.jpg», действительный. Когда я пытаюсь использовать этот код, он не переходит в блок завершения. Пожалуйста, расскажите мне, в чем проблема, и что я делаю неправильно.

спасибо

ответ

1

Все выглядит хорошо, для блока завершения мы не хотим использовать делегата. Пожалуйста, следуйте коду, и вы получите это.

ASIHTTPRequest * photoRequest = [[ASIHTTPRequest alloc] initWithURL: [NSURL URLWithString: "http://example.com/pictures/sample.jpg")]];

[photoRequest setDownloadDestinationPath: [NSString stringWithFormat: @ "% @/sample.png", stringPath]];

[photoRequest setCompletionBlock:^{

NSLog(@"Response %d", [photoRequest responseStatusCode]); 

}];

[photoRequest startAsynchronous];

Надеюсь, вы понимаете код.

Смежные вопросы