Sobes.tech
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