Junior — Middle
Welke soorten geheugenlekken zijn er en hoe identificeer je ze?
sobes.tech AI
Antwoord van AI
In iOS zijn er verschillende soorten geheugenlekken:
- Cyclische verwijzingen (retentiecycli): wanneer twee objecten elkaar vasthouden via sterke verwijzingen, waardoor ze niet worden vrijgegeven.
- Lekken door verkeerd gebruik van delegates: als de delegate wordt gedeclareerd als sterke verwijzing, kan dit een cyclus veroorzaken.
- Lekken door niet vrijgegeven bronnen: bijvoorbeeld timers, notificatie-observers die niet zijn verwijderd.
Om lekken te detecteren, worden de tools van Xcode gebruikt:
- Instruments (Leaks en Allocations) — volgen objecten die niet worden vrijgegeven.
- Memory Graph Debugger — visualiseert de verbindingen tussen objecten en helpt bij het vinden van cycli.
Voorbeeld: als in de klasse ViewController er een sterke verwijzing is naar een timer die niet wordt gestopt en niet wordt gereset, kan dit leiden tot een lek.