UImage Speicher wird nicht freigegeben VM: ImageIO_JPEG_DATA?

9

Ich habe mehrere Ansichten auf einmal auf dem Bildschirm, die horizontal scrollen. Sie sind alle mit Bildern gefüllt. Alle diese Bilder werden im Hintergrund durch die Parse API geladen. Ich führe die Zuteilungen von Instrument aus und die anonyme VM: ImageIO_JPEG_DATA-Kategorie beansprucht den Großteil des verwendeten Speichers. Der gesamte Speicher in der App entspricht etwa 40 und dann ist diese Kategorie über 55, was die Gesamtzahl auf 100 setzt. Diese Kategorie geht überhaupt nicht unter und bleibt nur konstant. Was kann ich tun, um diesen Speicher von den Bildern in meinen Sammlungsansichten freizugeben?

Hier ist der Code für meine Sammlung:

.m für meine Sammlung View-Controller

%Vor%

.m für CollectionViewCell

%Vor%

Bearbeiten: Foto von Instrumenten

    
BlueBear 09.05.2014, 22:09
quelle

1 Antwort

3

Ich hatte das gleiche Problem in einer Fotogalerie-ähnlichen App und stieß auf das gleiche Problem mit Zuweisungen in der sogenannten ImageIO_JPEG_DATA-Kategorie, die sich anhäuften und für immer "live" blieben, wodurch meine App nicht mehr genügend Arbeitsspeicher hatte. Seltsamerweise geschah dies nur auf dem iPad, auf dem ich getestet habe, und NICHT auf dem ios-Simulator (der keine Speicherprobleme aufwies).

Brians Vorschlag (unten) hat für mich funktioniert. Meine App verwendete ursprünglich ein Array, von dem jedes Element - unter anderem - ein UII-Bild enthielt. Die Bilder wurden in verschiedenen UIScrollViewControllern verwendet.

Wenn ich ein Bild laden wollte, wenn ich

benutzt habe

[UIImage imageWithContentsOfFile: Pfad]

Anstatt eine direkte Referenz auf die UIImage in meinem Array, das Speicherproblem (verursacht durch einige unerklärliche Zwischenspeicherung, dass ImageIO_Malloc war) war weg und die ImageIO_JPEG_DATA Zuweisungen gestoppt häufen und wurde freigegeben.

Ich hätte diese Lösung in einer ganzen Ewigkeit nie allein gefunden, also danke Brian.

    
Eric 11.05.2014 11:57
quelle