Sobes.tech
Junior — Middle

Quali sono i tipi di perdite di memoria e come individuarle?

sobes.tech AI

Risposta dell'AI

In iOS esistono diversi tipi di perdite di memoria:

  • Riferimenti ciclici (cicli di ritenzione): quando due oggetti si tengono reciprocamente tramite riferimenti forti, impedendo il loro rilascio.
  • Perdite dovute a un uso scorretto dei delegati: se il delegato è dichiarato come riferimento forte, può causare un ciclo.
  • Perdite dovute a risorse non liberate: ad esempio, timer, osservatori di notifiche che non sono stati rimossi.

Per individuare le perdite si utilizzano gli strumenti di Xcode:

  • Instruments (Leaks e Allocations) — permette di tracciare gli oggetti che non vengono liberati.
  • Memory Graph Debugger — visualizza le connessioni tra gli oggetti e aiuta a trovare i cicli.

Esempio: se nella classe ViewController c'è un riferimento forte a un timer che non si ferma e non viene azzerato, questo può portare a una perdita.