Sobes.tech
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.