2013-10-21 23 views
51

Scheinbar gibt es keine AFImageRequestOperation, aber nur AFImageResponseSerializer und ehrlich gesagt bekomme ich es nicht oder vielleicht sehe ich nur zu lange durch AFNetworking Website ... Download von Bildern mit früheren AFNetworking war wie ein Charme. Ich würde es hassen, zu älteren AFnetworking zurückzukehren, da ich fast alles über die neue Version gemacht habe ... Jeder?Wie lade ich ein Bild mit AFNetworking 2.0 herunter?

Antwort

126

SO wollen Sie so etwas für 2.0.

AFHTTPRequestOperation *requestOperation = [[AFHTTPRequestOperation alloc] initWithRequest:urlRequest]; 
requestOperation.responseSerializer = [AFImageResponseSerializer serializer]; 
[requestOperation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) { 
    NSLog(@"Response: %@", responseObject); 
    _imageView.image = responseObject; 

} failure:^(AFHTTPRequestOperation *operation, NSError *error) { 
    NSLog(@"Image error: %@", error); 
}]; 
[requestOperation start]; 

Wie Adam erwähnt man auch so etwas wie die unten tun können, wenn Sie nur wollen es in ein Imageview

[myImageView setImageWithURL:[NSURL URLWithString:@"http://sitewithimage.com/images/myimage.png"]]; 
+3

gerettet mein Leben :) Ich wusste, es gab eine Lösung :) – raistlin

+0

Würde dies in der Hauptwarteschlange oder der Hintergrundwarteschlange sein? – Tander

+0

@Tander Die Completion-Blöcke laufen auf der Hauptwarteschlange – Bot

4

für alte Version zu werfen, gibt es keine responseSerializer ist, können Sie auch

AFHTTPRequestOperation *requestOperation = [[AFHTTPRequestOperation alloc] initWithRequest:urlRequest]; 
//requestOperation.responseSerializer = [AFImageResponseSerializer serializer]; 
[requestOperation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) { 
    NSLog(@"Response: %@", responseObject); 
    _imageView.image = [UIImage imageWithData:responseObject]; 

} failure:^(AFHTTPRequestOperation *operation, NSError *error) { 
    NSLog(@"Image error: %@", error); 
}]; 
[requestOperation start]; 
+0

Die Frage ist spezifisch für AFNetworking 2.0 – Bot

+0

ok, Sie haben Recht. – lbsweek

0

Für Menschen AFNetworking in Swift, können above solution wie unten

geschrieben werden
let requestOperation : AFHTTPRequestOperation = AFHTTPRequestOperation(request: urlRequest) 
    requestOperation.responseSerializer = AFImageResponseSerializer() 

    requestOperation.setCompletionBlockWithSuccess({ (requestOperation, responseObject) in 
     print(responseObject) 
     _imageView.image = responseObject as? UIImage 

    }) { (requestOperation, error) in 
     print(error) 
    } 
    requestOperation.start() 
Verwandte Themen