Apparentemente non c'è AFImageRequestOperation
, ma solo AFImageResponseSerializer
e francamente non capisco o forse sto guardando troppo a lungo attraverso il sito AFNetworking ... Scaricare immagini con AFNetworking precedente era come un incantesimo. Odio tornare al vecchio AFnetworking, dato che ho fatto quasi tutte le cose tramite la nuova versione ... Chiunque?Come scaricare l'immagine con AFNetworking 2.0?
51
A
risposta
126
Quindi si desidera qualcosa di simile per 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];
Come già detto da Adam si può anche fare qualcosa di simile al di sotto se sono solo voglia di gettarlo in un IMAGEVIEW
[myImageView setImageWithURL:[NSURL URLWithString:@"http://sitewithimage.com/images/myimage.png"]];
4
per vecchia versione, non c'è responseSerializer, è anche possibile
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
Per le persone che utilizzano AFNetworking
a Swift, above solution può essere scritto come di seguito
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()
salvato la mia vita :) Sapevo che c'era qualche soluzione :) – raistlin
Sarebbe presente nella coda principale o nella coda di sfondo? – Tander
@Tander I blocchi di completamento vengono eseguiti nella coda principale – Bot