Junior — Middle
Ce tipuri de scurgeri de memorie există și cum le identifici?
sobes.tech AI
Răspuns de la AI
Există mai multe tipuri de scurgeri de memorie în iOS:
- Referințe ciclice (cicluri de retenție): atunci când două obiecte se mențin reciproc prin referințe puternice, ceea ce împiedică eliberarea lor.
- Scurgeri din cauza utilizării incorecte a delegaților: dacă delegatul este declarat ca referință puternică, acest lucru poate duce la un ciclu.
- Scurgeri din cauza resurselor neeliberate: de exemplu, temporizatoare, observatori de notificări care nu au fost eliminați.
Pentru detectarea scurgerilor, se folosesc instrumentele Xcode:
- Instruments (Leaks și Allocations) — permite urmărirea obiectelor care nu sunt eliberate.
- Memory Graph Debugger — vizualizează conexiunile dintre obiecte și ajută la găsirea ciclurilor.
Exemplu: dacă în clasa ViewController există o referință puternică la un temporizator care nu se oprește și nu este resetat, acest lucru poate duce la o scurgere.