AFNetworking 3.0无法下载图像

Eug*_*ene 4 http objective-c uiimage ios afnetworking-3

我正在尝试使用AFNetworking 3.0以这种方式下载图像:

- (UIImage *) loadImage:(NSString *) link
 {
    __block UIImage *image = [UIImage imageNamed:@"no_user_profile_pic.png"];
    AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
    manager.responseSerializer = [AFImageResponseSerializer serializer];
    [manager GET:[link stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLHostAllowedCharacterSet]]
      parameters:nil
        progress:nil
         success:^(NSURLSessionTask *task, id responseObject) {
             image = (UIImage *) responseObject;
         } failure:^(NSURLSessionTask *operation, NSError *error) {
             NSLog(@"Load Image error - %@", [error description]);
         }];
    return image;
}
Run Code Online (Sandbox Code Playgroud)

每次我收到此错误:

***断言失败 - [AFHTTPRequestSerializer requestWithMethod:URLString:parameters:error:],/ Users /.../AFNetworking/AFURLRequestSerialization.m:353

我无法弄清楚我做错了什么.发生了什么错误?

小智 6

如果使用AFNetworking 3.0,则需要添加头文件AFImageDownloader.h:

#import <AFNetworking/AFImageDownloader.h>
Run Code Online (Sandbox Code Playgroud)

并使用方法downloadImageForURLRequest:

    NSString *stringVideo = [NSString stringWithFormat:@"https:%@", your link];
    AFImageDownloader *downloader = [[AFImageDownloader alloc] init];
    NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString: stringVideo]];
    [downloader downloadImageForURLRequest:request success:^(NSURLRequest * _Nonnull request, NSHTTPURLResponse * _Nullable response, UIImage * _Nonnull responseObject) {

        NSLog(@"Succes download image");

    }failure:^(NSURLRequest * _Nonnull request, NSHTTPURLResponse * _Nullable response, NSError * _Nonnull error) {

        NSLog(@"Error download image");
    }];
Run Code Online (Sandbox Code Playgroud)

  • IMO最好使用`[AFImageDownloader defaultInstance]`来使用`AFImageDownloader`的共享实例. (4认同)

Sij*_*iju 0

使用URLFragmentAllowedCharacterSet而不是URLHostAllowedCharacterSet