2017-03-23 4 views
0

Ich habe Instrumente verwendet, um meine App zu messen.Es zeigt einige Speicherlecks und meine App ist mit ARC.Warum tritt bei ARC immer noch ein Speicherleck auf?

Hier ist ein Bild des Lecks.

enter image description here

Frage ist:

1.We die Größe des Speicherverlust ist etwa 1KiB sehen können, das meiste davon ist smaller.Does es egal, ob ich es nicht kümmern?

2.Wir können die Adresse der Instanz sehen, wo Speicherleck passiert, kann ich es finden (im Code, nehme ich an), so kann ich es beheben, und wie?

Antwort

0

weil es starke Instanzen von Objekten geben kann, die nicht freigegeben werden. Und verwende immer schwache Referenzen unter Blöcken.

Für Beispiel

__weak typeof(self) weakSelf = self; 
    dispatch_async(dispatch_get_main_queue(), ^{ 
     weakSelf.drawingView.center = weakSelf.center; 
    }); 

kann es auch Zyklen beibehalten. Bitte verwenden Sie Anrufbäume zur Lösung. Dann analysiere auch den Code.

Verwandte Themen