Ich arbeite an einer iPad Photo Collage App, die vielleicht Hunderte von UIImageView
s auf dem Bildschirm auf einmal zeichnet.Erzwingen, dass ein Objekt unter ARC freigegeben wird
Es gibt eine Schaltfläche, die den Benutzer "re-create" ermöglicht, die eine for
Schleife auf [photo removeFromSuperview]
auf allen Fotos ausführen und dann eine neue Charge in dieser Reihenfolge initialisieren soll.
Ich bin mit ARC, und meine Konsole sagt mir, dass meine Photo
‚s dealloc
Methode wird erst nach der nächsten Charge genannt gezogen worden ist, was bedeutet, ich in den Speicher Probleme renne, obwohl ich bin versuchen, den ersten Satz vor dem Hinzufügen des nächsten Satzes zu entfernen.
Gibt es eine Möglichkeit, entweder 1) zu warten, bis alle Fotos korrekt freigegeben wurden oder 2) alle Fotos sofort unter ARC zum Dealloc zu zwingen?
Radu hat recht, wenn Sie die Bildansichten entfernen und alle starken Verweise auf diese entfernen, werden sie sofort freigegeben. Es ist nicht wie bei dem alten MRC-Problem, bei dem die schlampige Verwendung von "Autorelease" zu einer Verzögerung der Freigabe des Speichers bis zum Ende der aktuellen Ausführungsschleife führen könnte. Wenn Sie immer noch Probleme haben, müssen Sie uns Code-Snippet zeigen, wie Sie Referenzen auf die Bilder und deren Bildansichten erstellen, hinzufügen und speichern. Aber wenn ich die Bildansicht entferne und eine neue erstelle, passiert die Deallok für die alte, bevor ich zur Erstellung der neuen komme. – Rob