Sobes.tech
Junior — Middle

Kun je uitleggen welke soorten geheugenlekken er in applicaties bestaan?

sobes.tech AI

Antwoord van AI

In iOS-applicaties zijn de belangrijkste typen geheugenlekken gerelateerd aan onjuist beheer van objectreferenties:

  • Sterke referentiecycli (Strong Reference Cycles) — wanneer twee objecten sterke verwijzingen naar elkaar hebben en geen van beiden kan worden vrijgegeven.
  • Leaks door closures (Closures) — als een closure self vastlegt met een sterke verwijzing, kan dit leiden tot een referentiecyclus.
  • Niet vrijgegeven bronnen — objecten die niet worden vrijgegeven vanwege het ontbreken van een deinit-aanroep of verkeerd gebruik.

Voorbeeld van een sterke referentiecyclus:

class Person {
    var apartment: Apartment?
}

class Apartment {
    var tenant: Person?
}

let person = Person()
let apartment = Apartment()
person.apartment = apartment
apartment.tenant = person // sterke referentiecyclus

Om dit te voorkomen, worden zwakke (weak) of niet-eigenlijke (unowned) referenties gebruikt.