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