Junior — Middle
Welche Arten von Speicherlecks gibt es und wie erkennt man sie?
sobes.tech KI
Antwort von AI
In iOS gibt es verschiedene Arten von Speicherlecks:
- Zyklische Referenzen (Retain Cycles): wenn zwei Objekte sich gegenseitig durch starke Referenzen halten, was ihre Freigabe verhindert.
- Lecks durch falsche Verwendung von Delegates: wenn der Delegate als starke Referenz deklariert ist, kann dies zu einem Zyklus führen.
- Lecks durch nicht freigegebene Ressourcen: z.B. Timer, Notification-Observer, die nicht entfernt wurden.
Zur Erkennung von Lecks verwendet man Xcode-Tools:
- Instruments (Leaks und Allocations) — verfolgt Objekte, die nicht freigegeben werden.
- Memory Graph Debugger — visualisiert die Verbindungen zwischen Objekten und hilft, Zyklen zu finden.
Beispiel: Wenn in der Klasse ViewController eine starke Referenz auf einen Timer besteht, der nicht gestoppt oder nullifiziert wird, kann dies zu einem Leck führen.