Middle
iOS'tо күчтүү шилтемелер менен эсептегичтер (retention counts) кантип иштейт?
sobes.tech AI
AIден жооп
Күчтүү шилтемеси бар өзгөрмөгө объектти берүү менен, объекттин шилтемелер санагычы 1ге өсөт. Күчтүү шилтеме нөлгө коюлса же чектен чыгып кетсе, шилтемелер санагычы 1ге азаяды. Объект анын шилтемелер санагычы нөлгө жеткенде жана башка күчтүү шилтемелер калбаганда, эс тутумдан чыгарыла турган болот.
Мисал:
class MyObject {
deinit {
// Объектти чыгарыш учурунда чакырылат
print("MyObject чыгарыла турган болду.")
}
}
var object1: MyObject? = MyObject() // object1 - күчтүү шилтеме, MyObjectтин шилтемелер санагычы == 1
var object2 = object1 // object2 - күчтүү шилтеме, MyObjectтин шилтемелер санагычы == 2
object1 = nil // Күчтүү шилтеме object1 нөлгө коюлду, MyObjectтин шилтемелер санагычы == 1
object2 = nil // Күчтүү шилтеме object2 нөлгө коюлду, MyObjectтин шилтемелер санагычы == 0
// MyObject чыгарыла турган болду