Sobes.tech
Junior — Middle

Можете ли објаснити механизам аутоматског управљања меморијом у ARC-у и како он ослобађа неупотребљене објекте?

sobes.tech АИ

Одговор од АИ

ARC (Automatsko Brojanje Referenci) je mehanizam za upravljanje memorijom u iOS-u koji automatski prati broj referenci na objekte i ih oslobađa kada više nisu potrebni.

Princip rada:

  • Svaki objekat ima brojač referenci (retention count).
  • Kada se kreira referenca na objekat, brojač se povećava.
  • Kada se referenca ukloni, brojač se smanjuje.
  • Kada brojač dostigne nulu, objekat se automatski uklanja iz memorije.

ARC radi u fazi kompilacije, ubacujući pozive retain/release u kod, tako da programer ne mora ručno upravljati memorijom.

Primer u 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, objekat Person se uklanja

Na ovaj način, ARC automatski oslobađa objekte kada na njih više nema aktivnih referenci.