Junior — Middle
Můžete vysvětlit mechanismus automatického řízení paměti v ARC a jak uvolňuje nepoužívané objekty?
sobes.tech AI
Odpověď od AI
ARC (Automatické počítání odkazů) je mechanismus správy paměti v iOS, který automaticky sleduje počet odkazů na objekty a uvolňuje je, když již nejsou potřeba.
Princip fungování:
- Každý objekt má čítač odkazů (retention count).
- Při vytváření odkazu na objekt se čítač zvyšuje.
- Při odstranění odkazu se čítač snižuje.
- Když čítač dosáhne nuly, objekt je automaticky odstraněn z paměti.
ARC pracuje ve fázi kompilace, vkládáním volání retain/release do kódu, takže programátor nemusí ručně spravovat paměť.
Příklad v Swift:
class Person {
var name: String
init(name: String) {
self.name = name
}
}
var person1: Person? = Person(name: "Иван") // retention count = 1
var person2 = person1 // retention count = 2
person1 = nil // retention count = 1
person2 = nil // retention count = 0, objekt Person je odstraněn
Tímto způsobem ARC automaticky uvolňuje objekty, když na ně již nejsou aktivní odkazy.