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