web-dev-qa-db-ja.com

AFNetworking 2.0で画像をダウンロードする方法は?

どうやらAFImageRequestOperationはありませんが、AFImageResponseSerializerしかありません。率直に言って、私はそれを取得できないか、AFNetworkingサイトで長すぎます...以前のAFNetworkingでの画像のダウンロードはチャーム。私はほとんどすべてのことを新しいバージョンで行ったので、古いAFnetworkingに戻るのは嫌です...誰ですか?

51
raistlin

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"]];
126
Bot

古いバージョンの場合、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];
4
lbsweek

SwiftでAFNetworkingを使用している場合、 上記のソリューション は次のように記述できます。

    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()
0
Penkey Suresh