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.