Junior — Middle
Môžete vysvetliť mechanizmus automatického riadenia pamäte v ARC a ako uvoľňuje nepoužívané objekty?
sobes.tech AI
Odpoveď od AI
ARC (Automatické počítanie referencií) je mechanizmus správy pamäte v iOS, ktorý automaticky sleduje počet odkazov na objekty a ich uvoľňuje, keď už nie sú potrebné.
Princíp fungovania:
- Každý objekt má čítač odkazov (retention count).
- Pri vytváraní odkazu na objekt sa čítač zvyšuje.
- Pri odstránení odkazu sa čítač znižuje.
- Keď čítač dosiahne nulu, objekt sa automaticky odstraňuje z pamäte.
ARC pracuje počas fázy kompilácie, vkladaním volaní retain/release do kódu, takže programátor nemusí manuálne spravovať pamäť.
Prí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 odstránený
Týmto spôsobom ARC automaticky uvoľňuje objekty, keď na ne už nie sú aktívne odkazy.