Wie finde ich genau heraus, wo Speicher im Projekt des iPhones leckt

7

Während der Entwicklung von Apps in Xcode treten Speicherlecks auf. Wenn ich sie in der erweiterten Detailansicht überprüfte, zeigen sie verschiedene Methoden an, die nicht mit implementiert sind. Wie finde ich genau heraus, welches Objekt leckt und wo es Speicher verliert.

Wenn ARC aktiviert ist, müssen wir uns um Speicherlecks kümmern oder nicht?

    
SURESH SANKE 08.05.2012, 06:12
quelle

2 Antworten

11

Selbst bei ARC Speicherlecks kann es vorkommen, dass nur die Freigabe und Autorelease während der Kompilierzeit eingefügt wird.

1. Sie müssen mit Build and analyze in XCode, shift+command+b auf Undichtigkeiten prüfen. Sie sollten diese Probleme beheben.

2. Danach können Sie die Instrumente mit der Profiloption command+i verwenden. Dies zeigt Ihnen, wo das Leck sein könnte.

Dieser Link wird Ihnen auch helfen Ссылка

Bearbeiten: Einige Screenshots hinzugefügt, um es hoffentlich klarzustellen.

Wählen Sie während der Profilerstellung nach der Auswahl von leaks die Option call tree und aktivieren Sie die Kontrollkästchen hide system libraries , invert call tree und show obj-c only wie in der Abbildung unten gezeigt.

Nach einem Doppelklick auf den Symbolnamen unten erhalten Sie die Zeile, in der sie undicht ist.

Sie werden so etwas bekommen.

    
iNoob 08.05.2012, 06:23
quelle
10

Ja, selbst mit ARC gibt es Speicherlecks . ARC ist kein Garbage Collector, es fügt nur für Sie zur Kompilierungszeit, behält, Releases und Autoreleases in Schlüsselpositionen ein. Also, obwohl es dem Entwickler hilft, sollten Sie beachten, dass Speicherlecks immer noch existieren (zum Beispiel Zirkelreferenzierung). Sie können mit dem Static Analyzer beginnen und jedes Problem beheben, das Ihnen angezeigt wird. Sie können dann zu Instrumente gehen und Leaks auswählen.

    
Peres 08.05.2012 06:19
quelle

Tags und Links