Как загрузить изображение с AFNetworking 2.0?


внешне нет AFImageRequestOperation, но только AFImageResponseSerializer и, честно говоря, я не понимаю, или, может быть, я просто слишком долго просматриваю сайт AFNetworking... Загрузка изображений с предыдущей AFNetworking была как шарм. Я бы не хотел возвращаться к старой AFnetworking, так как я сделал почти все вещи через новую версию... Кто?

3   51  

3 ответа:

Итак, вы хотите что-то подобное для 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];

Как упоминалось Адамом, вы также можете сделать что-то вроде ниже, если вы просто хотите бросить его в imageView

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

для старой версии, нет 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];

для людей с помощью AFNetworking в Swift, выше решение может быть написано как ниже

    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()