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.