Junior — Middle
Jaké jsou typy úniků paměti a jak je odhalit?
sobes.tech AI
Odpověď od AI
V iOS existuje několik typů úniků paměti:
- Cyklické odkazy (retention cykly): když si dva objekty navzájem drží silné odkazy, což brání jejich uvolnění.
- Úniky kvůli nesprávnému použití delegátů: pokud je delegát deklarován jako silná reference, může dojít ke cyklu.
- Úniky kvůli ne uvolněným zdrojům: například časovače, pozorovatelé oznámení, kteří nebyli odstraněni.
Pro detekci úniků se používají nástroje Xcode:
- Instruments (Leaks a Allocations) — sleduje objekty, které se neuvolňují.
- Memory Graph Debugger — vizualizuje spojení mezi objekty a pomáhá najít cykly.
Příklad: pokud ve třídě ViewController je silná reference na časovač, který se nezastavuje a není nulován, může to vést k úniku.