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).