2013-06-20 4 views
5

I SDWebimage verwende Bilder auf meinem tablkeview zu laden Ich verfolge this TutorialSDWebImage herunterladen

Jetzt habe ich auf ein Problem stecken, wenn ich nach unten scrollen und schlug zurück, bevor Bilder geladen werden die App bekam crashes.How kann ich das lösen?

So brechen Sie den SDWebImage-Download ab. Ich bin mit

[cell.UserImage setImageWithURL:[NSURL URLWithString:[SDWebArray objectAtIndex:indexPath.row]] placeholderImage:[UIImage imageNamed:@"Placeholder.png"]]; 
+0

U es lösen? Oder .... –

Antwort

12

in Ihrer Zelle Ich habe durch einige Antworten gegangen und discussions.But keiner von ihnen hat mir geholfen, und konnte sie nicht

verwenden mich

Bitte helfen Sie, können Sie die Abbrechen Bild wird geladen, wenn es wiederverwendet wird. In Ihrer UITableViewCell Unterklasse fügen Sie folgendes:

-(void)prepareForReuse { 
    [super prepareForReuse]; 
    [self.imageView cancelCurrentImageLoad]; // UIImageView for whatever image you need to cancel the loading for 
} 

zu #import "UIImageView+WebCache.h" auch sicher sein.

Obwohl Ihre App nicht abstürzen sollte, aber ich kann Ihnen nicht helfen, ohne etwas Code zu sehen, da es nicht möglich ist, die Ursache des Absturzes anhand Ihrer obigen Beschreibung zu lokalisieren.

+0

Ich aktualisierte die Frage und addiere etwas Code, wie ich sagte, verwende ich dieses Tutorial ... http: //iosmadesimple.blogspot.com/2013/04/lazy-image-loading.html –

+0

Der Code Ich oben gestellt sollte es lösen, haben Sie es versucht? Ich denke, dass dein Absturz mit etwas anderem zusammenhängt. Was ist die Crash-Beschreibung? – runmad

0
- (void)cancelAll 
{ 
    for (SDWebImageDownloader *downloader in downloaders) { 
    [downloader cancel]; 
    } 
    [cacheDelegates removeAllObjects]; 
    [cacheURLs removeAllObjects]; 

    [downloadInfo removeAllObjects]; 
    [downloadDelegates removeAllObjects]; 
    [downloaders removeAllObjects]; 
    [downloaderForURL removeAllObjects]; 
} 
0

Diese Codezeile, wenn Ihre SDWebImage bereits geladen ist:

[self.imageView cancelCurrentImageLoad];