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.