Zeiger auf Zeiger auf UIImage von NSURLConnection erstellt
-
06-07-2019 - |
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?
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 UIImageView
s 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