Middle
Jak działają liczniki (retention counts) z silnymi linkami w iOS?
sobes.tech AI
Odpowiedź od AI
Przy przypisaniu obiektu do zmiennej ze silnym odwołaniem, licznik odwołań do obiektu zwiększa się o 1. Gdy silne odwołanie zostanie ustawione na null lub wyjdzie z zakresu, licznik odwołań zmniejsza się o 1. Obiekt jest zwalniany, gdy jego licznik odwołań osiąga zero i nie ma już silnych odwołań.
Przykład:
class MyObject {
deinit {
// Wywoływane podczas zwalniania obiektu
print("MyObject został zwolniony.")
}
}
var object1: MyObject? = MyObject() // object1 - silne odwołanie, licznik odwołań do MyObject == 1
var object2 = object1 // object2 - silne odwołanie, licznik odwołań do MyObject == 2
object1 = nil // Silne odwołanie object1 ustawione na null, licznik odwołań do MyObject == 1
object2 = nil // Silne odwołanie object2 ustawione na null, licznik odwołań do MyObject == 0
// MyObject jest zwalniany