Sobes.tech
Junior — Middle

Vieš vysvetliť, aké typy únikov pamäte v aplikáciách existujú?

sobes.tech AI

Odpoveď od AI

V iOS aplikáciách sú hlavné typy únikov pamäte spojené s nesprávnou správou odkazov na objekty:

  • Silné cykly odkazov (Strong Reference Cycles) — keď dva objekty majú silné odkazy na seba navzájom a žiadny z nich nemôže byť uvoľnený.
  • Úniky spôsobené uzávermi (Closures) — ak uzáver zachytí self silnou referenciou, môže dôjsť ku cyklu odkazov.
  • Neuvoľnené zdroje — objekty, ktoré nie sú uvoľnené kvôli absencii volania deinit alebo nesprávnemu použitiu.

Príklad silného cyklu odkazov:

class Person {
    var apartment: Apartment?
}

class Apartment {
    var tenant: Person?
}

let person = Person()
let apartment = Apartment()
person.apartment = apartment
apartment.tenant = person // silný cyklus odkazov

Aby sa tomu zabránilo, používajú sa slabé (weak) alebo neuniverzálne (unowned) odkazy.