Frage

Ich bin in der Lage zu laden über 200 UIImage Objekte in ein NSMutableDictionary ohne memorry Warnung Fragen.

Wenn ich anfangen, sie auf dem Bildschirm angezeigt wird (nach ca. 10-20 zeigen Bilder) I geringe Speicher Warnungen und einen eventuellen Absturz zu bekommen.

Nur etwa 8 Bilder zur Zeit angezeigt werden.

Dauert es zusätzliche Speicher, um tatsächlich eine UIImage auf dem Bildschirm zeichnen?

Keine Speicherlecks zeigen und ich habe auf Lecks viele, viele Male Codes überprüft.

War es hilfreich?

Lösung

Die Dokumentation sagt dass eine UIImage mit impliziert nicht notwendigerweise, dass das Bild tatsächlich im Speicher gespeichert ist, weil sie aus dem Bild Cache gelöscht werden kann. Aber es sagt, dass, wenn Sie versuchen, es zu zeichnen, wird es wieder in den Speicher gezogen werden. es beginnt Spülen von seiner Bild-Cache Vielleicht, bevor es Sie über die Low-Memory-Bedingung warnt. Das erklärt alles, was Sie sehen.

Andere Tipps

Seine wahrscheinlich, dass Sie zunächst einen Link zu dem Bild erstellen, die nur die Daten, die tatsächlich zu diesem Zeitpunkt gelesen wird, sind die Abmessungen und den Bildtyp (kurz), wird der Rest der Daten in der Regel erst in der Regel von einem Hintergrund angefordert benötigt verarbeiten also auf dem Bildschirm angezeigt. Wenn es die eigentlichen Bilddaten angezeigt wird, wird von dem Dateipfad heruntergeladen und dekodiert entsprechend seiner Bildtyp wird dann zwischengespeichert, so dass es nicht erneut heruntergeladen werden muss, nimmt das Caching viel Speicher und wenn Ihr mit Doppel / Dreifach Pufferung dort für die off-Screen-Zeichnung benötigten zusätzliche Speicher sind. Versuchen Entsorgung aller Bilddaten, bevor neue Bilder geladen werden.

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