2016-07-20 7 views
-2

私はプロジェクトに取り組んでおり、を使用する必要があります。AFImageDownloaderを使用すると、プロジェクトで使用する必要がある画像がいくつかダウンロードされます。だから、基本的に私はUIImageを取得しようとすると、私のようにそれを得るiOSブロック画像返信

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

-(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"); 
    }]; 
} 

デリゲートはもちろんないゼロとupdateImageWithImageのコードです:私は、次のコードを使用します応答を割り当ててUICollectionViewCellに割り当て、クラッシュします。私はresponseObjectの "コピー"を私のプログラムの一部でそれを使う前にしなければならないと思っていますが、どういう問題かは分かりません。何か案は?

+0

クラッシュ後にデバッガは何を言いますか? –

+0

'self.image = responseObject;の後に' self.image'の値を一度チェックしてください。 – triandicAnt

+0

私はxcode 8 BTWを使用しています。デバッガは次のように言っています:libC++ abi.dylib:タイプNSExceptionのキャッチされていない例外で終了する –

答えて

-1

私はそれを理解しました。私は基本的にAFImagedownloaderを間違って使用していましたが、これはこのクラスを使用する適切な方法です:

[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!!!"); 

           }];