显然没有AFImageRequestOperation
,但只有AFImageResponseSerializer
并且坦率地说我没有得到它或者我只是在AFNetworking网站看起来太长了...用以前的AFNetworking下载图像就像魅力。我不想回到旧的AFnetworking,因为我通过新版本做了几乎所有的东西......任何人?
答案 0 :(得分:126)
所以你想要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];
正如Adam所提到的,如果你只是想将它扔进一个imageView,你也可以做类似下面的事情
[myImageView setImageWithURL:[NSURL URLWithString:@"http://sitewithimage.com/images/myimage.png"]];
答案 1 :(得分:4)
对于旧版本,没有responseSerializer,你也可以
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];
答案 2 :(得分:0)
对于在Swift中使用AFNetworking
的人,above solution可以写成如下
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()