Junior — Middle
Puoi spiegare quali sono i tipi di perdite di memoria nelle applicazioni?
sobes.tech AI
Risposta dell'AI
Nelle applicazioni iOS, i principali tipi di perdite di memoria sono legati a una gestione errata dei riferimenti agli oggetti:
- Cicli di riferimento forti (Strong Reference Cycles) — quando due oggetti hanno riferimenti forti tra loro e nessuno può essere liberato.
- Perdite causate da closures (Closures) — se una closure cattura self con un riferimento forte, può portare a un ciclo di riferimento.
- Risorse non liberate — oggetti che non vengono liberati a causa della mancanza di chiamata a deinit o uso scorretto.
Esempio di ciclo di riferimento forte:
class Person {
var apartment: Apartment?
}
class Apartment {
var tenant: Person?
}
let person = Person()
let apartment = Apartment()
person.apartment = apartment
apartment.tenant = person // ciclo di riferimento forte
Per evitarlo, si usano riferimenti deboli (weak) o non universali (unowned).