Junior — Middle
Millised on mälupõhised lekked ja kuidas neid tuvastada?
sobes.tech AI
Vastus AI-lt
iOS-is on mitu tüüpi mälulekke:
- Tsüklilised viited (hoidmis tsüklid): kui kaks objekti hoiavad üksteist tugeva viitega, takistades nende vabastamist.
- Lekkeid vale kasutamise tõttu delegaatidega: kui delegaat on deklareeritud kui tugev viide, võib see põhjustada tsükli.
- Lekkeid vabastamata ressursside tõttu: näiteks ajastajad, teavituste jälgijad, mida ei ole eemaldatud.
Lekkeid tuvastamiseks kasutatakse Xcode tööriistu:
- Instruments (Leaks ja Allocations) — jälgib objekte, mida ei vabastata.
- Memory Graph Debugger — visualiseerib objektide vahelised ühendused ja aitab leida tsükleid.
Näide: kui ViewController klassis on tugev viide ajastajale, mis ei peatu ega nulli, võib see põhjustada lekked.