Frage

Hey alle, hier ist der Deal ...

Ich habe einen UIImage bekommt, die innerhalb einer Unterklasse NSURLConnection im Hintergrund über eine UIImageView geladen wird. Bis das Herunterladen von Daten abgeschlossen ist, wird ein Platzhalter Bild gezeigt. Die UIImage muss durch ein anderes, separates UIImageView verwendet werden, wie gut.

Das Problem, das ich habe, ist, dass, wenn ich die zweite UIImageView der image Eigenschaft auf, dass der Unterklasse-Objekt festgelegt, bevor der Download abgeschlossen ist, die zweite UIImageView nie das heruntergeladene Bild anzeigt, da es image prop ist auf den Platzhalter zeigt.

Gibt es trotzdem einen Zeiger auf einen Zeiger zwischen diesen beiden UIImageViews passieren?

Ich habe versucht, Dinge wie diese:

imageView2.image = &[imageView1 image];
imageView2.image = *[imageView1 image];

Aber diese scheinen nicht zu funktionieren. Irgendwelche Ideen?

War es hilfreich?

Lösung

Diese Zeiger sehen besonders gross. Das Problem mit dem es auf diese Weise zu tun, ist, dass, auch wenn Sie die Daten, auf die durch diese Zeiger werden könnten Aktualisieren Sie Ihre UIImageView Subklassen nicht darüber informiert, dass die Daten geändert hat, und damit wissen, dass sie nicht neu zu ziehen.

Statt mit diesem Zeiger Chaos zu spielen, warum verwendet nicht Schlüsselwert Beobachten statt? Wenn Sie einen separaten Thread laufen haben, die die UIImage herunterlädt, können Sie einfach Ihre UIImageViews sagen, diese Eigenschaft zu beobachten und, wenn der Download-Klasse fertig ist das Herunterladen alle Daten und hat es in das Eigentum setzen, werden die Ansichten, die eine Benachrichtigung erhalten und kann dann Anzeige des Bildes.

Andere Tipps

Sie kann nicht nur den connectionDidFinishLoading fängt: Nachricht von dem NSURLConnection und dann das zweite Bild gesetzt

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top