iOS prüfen Sie, ob Stellvertretung vorhanden ist, vor Aufruf der Methode

Ich Schreibe iOS-app und verwenden Sie imageStore Bibliothek zu faul laden von Bildern und cache in den Speicher. (https://github.com/psychs/imagestore)

Auf ViewController ich erstellen imagestore Beispiel:

imageStore = [ImageStore new];
imageStore.delegate = self;

Wenn Bild geladen, erfolgreich, imagestore call delegate-Methode

- (void)imageStoreDidGetNewImage:(ImageStore*)sender url:(NSString*)url

tun reloadData auf tableview neu Zellen.
Alles funktioniert gut. Aber es ist das problem: wenn ViewController didUnload (gehen Sie zurück in den navigation-controller) und das Bild geladen, Anwendung beenden, die mit crash, weil imagestore call-Methode der entladen ViewController.

Ich versuche Folgendes:
1) im ViewController lege ich diesen code in viewDidUnload Abschnitt:

imageStore.delegate = nil;
imageStore = nil;

2) In imageStore Hinzugefügt habe ich die Prüfung für null:

if(delegate != nil) {
  ...call delegate method
}

Funktioniert es, aber in regelmäßigen Abständen app-crash sowieso.

  • 2) ist unneedful. Mitteilung gesendet werden können, sicher zu nil Objekt.
  • Vielen Dank für die Antwort! aber ohne Absturz, 100% (wenn Bild geladen und viewcontroller entladen...
InformationsquelleAutor Vitaly Baev | 2011-11-02
Schreibe einen Kommentar