Sobes.tech
Junior — Middle

Yaddaş idarəetməsi üçün referans sayğacı adətən harada həyata keçirilir?

sobes.tech Süni İntellekt

AI-dan cavab

Yaddaş idarəetməsi üçün istinad sayğacı adətən obyekt və ya onun qabığının (runtime) səviyyəsində həyata keçirilir, burada hər obyektə ona aktiv olan istinadların sayı saxlanılır. Yeni istinad yaradıldıqda, sayğac artır, və istinad silindiyində — azaldılır. Əgər sayğac sıfıra çatarsa, obyekt sərbəst buraxılır.

iOS-də ARC (Avtomatik İstinad Sayğacı) ilə bu, Objective-C/Swift kompilyatoru və runtime tərəfindən həyata keçirilir. İnkişaf etdirici adətən sayğac üçün əl ilə kod yazmır, lakin güclü və zəif istinadları izləməli və döngəvi asılılıqları qarşısını almalıdır.

Swift-də nümunə:

class Person {
    var name: String
    init(name: String) { self.name = name }
}

var p1: Person? = Person(name: "Alice") // sayğac = 1
var p2 = p1 // sayğac = 2
p1 = nil // sayğac = 1
p2 = nil // sayğac = 0, obyekt sərbəst buraxılır

Bu şəkildə, istinad sayğacı adətən runtime-də həyata keçirilir və avtomatik idarə olunur.