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.