Junior — Middle
Hol valósul meg általában a memória kezeléséhez szükséges hivatkozásszámláló?
sobes.tech MI
Válasz az MI-től
A memória kezeléséhez használt hivatkozásszámláló általában az objektum vagy annak burkolatának (runtime) szintjén valósul meg, ahol minden objektum tárolja az aktív hivatkozások számát. Amikor új hivatkozás jön létre, a számláló növekszik, és amikor egy hivatkozás törlésre kerül, csökken. Ha a számláló eléri a nullát, az objektum felszabadul.
Az iOS-en az ARC (Automatikus Hivatkozásszámlálás) ezt a fordító és a Objective-C/Swift runtime végzi. A fejlesztő általában nem ír kézzel kódot a számlálóhoz, de figyelnie kell a erős és gyenge hivatkozásokat, hogy elkerülje a ciklikus függőségeket.
Swift példával:
class Person {
var name: String
init(name: String) { self.name = name }
}
var p1: Person? = Person(name: "Alice") // számláló = 1
var p2 = p1 // számláló = 2
p1 = nil // számláló = 1
p2 = nil // számláló = 0, az objektum felszabadul
Így a hivatkozásszámláló általában a runtime-ban van implementálva és automatikusan kezelve.