Sobes.tech
Junior — Middle

Koje su vrste curenja memorije i kako ih prepoznati?

sobes.tech АИ

Одговор од АИ

U iOS postoji nekoliko vrsta curenja memorije:

  • Ciklične reference (retain ciklusi): kada dva objekta drže jedno drugo snažnim referencama, što sprečava njihovo oslobađanje.
  • Curjenja zbog pogrešne upotrebe delegata: ako je delegat deklarisan kao snažna referenca, to može dovesti do ciklusa.
  • Curenja zbog neoslobođenih resursa: na primer, tajmeri, posmatrači obaveštenja koji nisu uklonjeni.

Za otkrivanje curenja koriste se alati Xcode-a:

  • Instruments (Leaks i Allocations) — prati objekte koji se ne oslobađaju.
  • Memory Graph Debugger — vizualizuje veze između objekata i pomaže da se pronađu ciklusi.

Primer: ako u klasi ViewController postoji snažna referenca na tajmer koji se ne zaustavlja i ne resetuje, to može dovesti do curenja.