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