Sobes.tech
Middle

Ako fungujú počítadlá (retention counts) so silnými odkazmi v iOS?

sobes.tech AI

Odpoveď od AI

Pri priradení objektu premennej so silnou referenciou sa počet odkazov na objekt zvýši o 1. Keď sa silná referencia nastaví na null alebo opustí rozsah, počet odkazov sa zníži o 1. Objekt sa uvoľní, keď jeho počet odkazov dosiahne nulu a už nemá žiadne silné referencie.

Príklad:

class MyObject {
    deinit {
        // Volá sa pri uvoľnení objektu
        print("MyObject bol uvoľnený.")
    }
}

var object1: MyObject? = MyObject() // object1 - silná referencia, počet odkazov na MyObject == 1
var object2 = object1 // object2 - silná referencia, počet odkazov na MyObject == 2

object1 = nil // Silná referencia object1 je nastavená na null, počet odkazov na MyObject == 1
object2 = nil // Silná referencia object2 je nastavená na null, počet odkazov na MyObject == 0
// MyObject je uvoľnený