Sobes.tech
Junior — Middle

Milyen típusú memória szivárgások léteznek, és hogyan lehet őket felismerni?

sobes.tech MI

Válasz az MI-től

Az iOS-ben többféle memória szivárgás létezik:

  • Ciklikus hivatkozások (megtartási ciklusok): amikor két objektum kölcsönösen erős hivatkozásokkal tartja egymást, ez megakadályozza azok felszabadítását.
  • Hibás delegate használat miatti szivárgások: ha a delegate erős hivatkozásként van deklarálva, ez ciklushoz vezethet.
  • Felszabadítatlan erőforrások miatti szivárgások: például időzítők, értesítési megfigyelők, amiket nem távolítottak el.

A szivárgások felismeréséhez az Xcode eszközeit használják:

  • Instruments (Leaks és Allocations) — nyomon követi azokat az objektumokat, amiket nem szabadítanak fel.
  • Memory Graph Debugger — vizualizálja az objektumok közötti kapcsolatokat és segít ciklusokat találni.

Példa: ha a ViewController osztályban erős hivatkozás van egy időzítőre, ami nem áll le és nem nullázódik, az szivárgáshoz vezethet.