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