Middle
Kaip veikia skaitikliai (retention counts) su stipriomis nuorodomis iOS?
sobes.tech AI
Atsakymas iš AI
Priskyrus objektą kintamajam su stipriuoju nuorodumu, objekto nuorodų skaitiklis padidėja 1. Kai stiprioji nuoroda nustatoma į null arba išeina iš apimties, nuorodų skaitiklis sumažėja 1. Objektas išlaisvinamas, kai jo nuorodų skaitiklis pasiekia nulį ir nėra jokių stipriųjų nuorodų.
Pavyzdys:
class MyObject {
deinit {
// Iškviečiama objekto išlaisvinimo metu
print("MyObject buvo išlaisvintas.")
}
}
var object1: MyObject? = MyObject() // object1 - stipri nuoroda, MyObject nuorodų skaitiklis == 1
var object2 = object1 // object2 - stipri nuoroda, MyObject nuorodų skaitiklis == 2
object1 = nil // Stipri nuoroda object1 nustatyta į null, MyObject nuorodų skaitiklis == 1
object2 = nil // Stipri nuoroda object2 nustatyta į null, MyObject nuorodų skaitiklis == 0
// MyObject išlaisvintas