Junior — Middle
Gde se obično implementira brojač referenci za upravljanje memorijom?
sobes.tech АИ
Одговор од АИ
Brojač referenci za upravljanje memorijom obično se implementira na nivou objekta ili njegovog omotača (runtime), gde svaki objekat čuva broj aktivnih referenci na njega. Kada se kreira nova referenca, brojač se povećava, a kada se referenca ukloni — smanjuje. Ako brojač dostigne nulu, objekat se oslobađa.
Na iOS-u sa ARC (Automatsko brojanje referenci) ovo je implementirano od strane kompajlera i runtime-a Objective-C/Swift. Programer obično ne piše ručni kod za brojač, ali mora pratiti jake i slabe reference kako bi izbegao cikličke zavisnosti.
Primer u Swift:
class Person {
var name: String
init(name: String) { self.name = name }
}
var p1: Person? = Person(name: "Alice") // brojač = 1
var p2 = p1 // brojač = 2
p1 = nil // brojač = 1
p2 = nil // brojač = 0, objekat se oslobađa
Na ovaj način, brojač referenci se obično implementira u runtime-u i automatski upravlja.