iOS 块图像 return

iOS Block image return

所以我正在做一个项目,我必须使用AFImageDownloader来下载一些我们需要在项目中使用的图像。我使用以下代码:

-(void) downloadImage:(NSURL*) url
{
    AFHTTPSessionManager *sessionManager = [[AFHTTPSessionManager alloc] init];
    AFImageDownloader    *imgDownloader = [[AFImageDownloader alloc] initWithSessionManager:sessionManager downloadPrioritization:AFImageDownloadPrioritizationFIFO maximumActiveDownloads:1 imageCache:nil];    
    AFHTTPResponseSerializer *responseSerializer = [AFHTTPResponseSerializer serializer];
    responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"application/json", @"text/json",@"binary/octet-stream",nil];
    sessionManager.responseSerializer = responseSerializer;
    NSURLRequest *req = [NSURLRequest requestWithURL:url];
    [imgDownloader downloadImageForURLRequest:req success:^(NSURLRequest *request, NSHTTPURLResponse *response, UIImage *responseObject){
        self.image = responseObject;
        [self.delegate updateImageWithImage:self.image]; // ** CRASH **

    } failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error){
        NSLog(@"Error");
    }];
}

delegate当然不是nil updateImageWithImage的代码是:

-(void) updateImageWithImage:(UIImage*) img {
   self.image.image = img;
}

所以基本上,当我尝试获取 UIImage 时,我将其作为响应并将其分配给 UICollectionViewCell,但它崩溃了!我想我应该在使用它之前对 responseObject 做一些 "copy" 以便我的程序部分,但我不确定问题是什么。有什么想法吗?

我明白了。我基本上是用错了 AFImagedownloader,这是使用这个 Class:

的正确方法
[self.imageView setImageWithURLRequest:jpegURLRequest

                      placeholderImage:placeholder

                                   success:^(NSURLRequest *request, NSHTTPURLResponse * _Nullable response, UIImage *image){

                                       NSLog(@"Success");



                                       completionBlock(image);

                                   }

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

                                   NSLog(@"ERROR!!!");

                               }];