Sobes.tech
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.