2016-07-20 28 views
-2

So arbeite ich an einem Projekt und ich mussAFImageDownloader verwenden, um einige Bilder herunterladen, die wir in unserem Projekt verwenden müssen. Ich verwende den folgenden Code ein:iOS Block Bild zurück

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

Der Delegierte ist natürlich nicht nil und Code des updateImageWithImage ist:

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

Also im Grunde, wenn ich versuche, die UIImage ich als bekommen, es zu erhalten Antwort und weisen Sie es an die UICollectionViewCell und es stürzt ab! Ich schätze, dass ich eine Art "Kopie" der responseObject vor der Verwendung von Teilen meines Programms machen sollte, aber ich bin nicht wirklich sicher, was das Problem ist. Irgendwelche Ideen?

+0

Was sagt der Debugger nach dem Absturz? –

+0

nach 'self.image = responseObject;' check einmal den Wert von 'self.image' durch Drucken. – triandicAnt

+0

Ich verwende xcode 8 BTW, und der Debugger sagt: libC++ abi.dylib: Beenden mit nicht abgefangenen Ausnahme des Typs NSException –

Antwort

-1

Ich habe es herausgefunden. Ich benutzte grundsätzlich AFImageDownloader falsch, das ist der richtige Weg, um diese Klasse zu verwenden: