Sobes.tech
Junior — Middle

Peux-tu expliquer quels sont les types de fuites de mémoire dans les applications?

sobes.tech IA

Réponse de l'IA

Dans les applications iOS, les principaux types de fuites de mémoire sont liés à une gestion incorrecte des références aux objets :

  • Cycles de référence forts (Strong Reference Cycles) — lorsque deux objets ont des références fortes l’un à l’autre, et aucun ne peut être libéré.
  • Fuites dues aux closures (Closures) — si une closure capture self avec une référence forte, cela peut entraîner un cycle de référence.
  • Ressources non libérées — objets qui ne sont pas libérés en raison de l’absence d’appel à deinit ou d’une utilisation incorrecte.

Exemple de cycle de référence fort :

class Person {
    var apartment: Apartment?
}

class Apartment {
    var tenant: Person?
}

let person = Person()
let apartment = Apartment()
person.apartment = apartment
apartment.tenant = person // cycle de référence fort

Pour éviter cela, on utilise des références faibles (weak) ou non universelles (unowned).