Sobes.tech
Middle

iOS'da kuchli havolalar bilan hisoblagichlar (retention counts) qanday ishlaydi?

sobes.tech AI

AIdan javob

Obyektni kuchli bog'liq bo'lgan o'zgaruvchiga tayinlaganda, ob'ektning bog'lanishlar soni 1 ga oshadi. Kuchli bog'liq nullga o'rnatilsa yoki doira tashqarisiga chiqsa, bog'lanishlar soni 1 ga kamayadi. Ob'ekt bog'lanishlar soni nolga yetganda va kuchli bog'liq bo'lmagan holda, u xotiradan chiqariladi.

Misol:

class MyObject {
    deinit {
        // Ob'ektni xotiradan chiqarish vaqtida chaqiriladi
        print("MyObject xotiradan chiqarildi.")
    }
}

var object1: MyObject? = MyObject() // object1 - kuchli bog'liq, MyObject ning bog'lanishlar soni == 1
var object2 = object1 // object2 - kuchli bog'liq, MyObject ning bog'lanishlar soni == 2

object1 = nil // Kuchli bog'liq object1 nullga o'rnatildi, MyObject ning bog'lanishlar soni == 1
object2 = nil // Kuchli bog'liq object2 nullga o'rnatildi, MyObject ning bog'lanishlar soni == 0
// MyObject xotiradan chiqarildi