2012-03-31 7 views
1

Ich habe ein Speicherleck von 3 UIImagings das Problem ist, ich kann nicht einfach irgendwo in meinem Code veröffentlichen, weil sie an vielen verschiedenen Orten zu jeder Zeit verwendet werden und ich don Ich weiß nicht, wo alles ist (über 20.000 Zeilen Code), also meine Frage ist, wenn ich sage alle 10 Sekunden einen dieser UIImages, einen leeren Platzhalter erstellen UImage, setze das leere Bild von UIImage auf das Bild des ursprünglichen UIImage. Release the original UIImage, Jetzt setze das Bild des ursprünglichen UIImage gleich dem Platzhalter UIImage und lasse dann den Platzhalter UIImage los, wird das funktionieren? Wenn ich tausendmal ein UImagage setze und es dann ganz am Ende loslasse, löscht es alle Daten oder muss ich es tausendmal freigeben?Memory-Leak-Problem mit Tausenden von Bildern auf 3 UIImagices

Antwort

0

Ich verstehe nicht wirklich, was Sie tun wollen, aber Sie haben sowieso nur eine Lösung: beheben Sie das Speicherleck. Alles andere wird wahrscheinlich nur Ihre Probleme verschieben, bis alles auseinander fällt.

Da Sie scheinen, Lecks zu haben, folgen Sie wahrscheinlich nicht die Apple memory management guidelines streng genug. Es ist wichtig, dass Sie dieses Dokument lesen, verstehen und befolgen. Es ist wahrscheinlich das wichtigste Dokument in Bezug auf die iOS-Entwicklung, das Sie verstehen müssen. Wenn Sie das tun, können Sie sogar riesige Projekte absolut speicherleckfrei halten. Wenn Sie dies nicht tun, werden Sie mit Lecks und Abstürzen enden.

Glücklicherweise kann Apple Ihnen bereits helfen, eine Menge Probleme zu finden: Drücken Sie "Analyse" in Xcode und beheben Sie alle Probleme, die der statische Analysator findet. Abgesehen von einigen seltenen Ausnahmen sind die vom Analysator gemeldeten Probleme echte Probleme, die behoben werden müssen. Gleiches gilt für Compilerwarnungen, BTW. Ihr Projekt sollte nicht eine einzige Warnung und nicht ein einziges Problem mit dem statischen Analysator ergeben, egal wie groß Ihre App ist (ich kann Ihnen aus erster Hand sagen, dass es nicht nur eine Arbeit mit mehreren Männern Jahre Arbeit ist möglich, es ist der einzige Weg, um geistig gesund zu bleiben).

Wenn der statische Analysator die Speicherfehlsteuerung nicht findet, müssen Sie die Kugel beißen und alle Punkte analysieren, an denen die Bilder von Hand verwendet werden, und vielleicht einige Klassen neu schreiben. Jede Problemumgehung wird die Arbeit, die Sie tun müssen, auf einen späteren Zeitpunkt verschieben und möglicherweise sogar die Situation verschlimmern.

Verwandte Themen