Sobes.tech
Middle

Kā darbojas skaitītāji (retention counts) ar stiprajām saitēm iOS?

sobes.tech AI

Atbilde no AI

Veido objektu ar stipru atsauci ar piešķirtu mainīgajam, objekta atsauču skaitītājs palielinās par 1. Kad stiprā atsauce tiek iestatīta uz nulli vai iziet no apgabala, atsauču skaitītājs samazinās par 1. Objekts tiek atbrīvots, kad tā atsauču skaitītājs sasniedz nulli un vairs nav stipru atsauču.

Piemērs:

class MyObject {
    deinit {
        // Izsaucas, kad objekts tiek atbrīvots
        print("MyObject ir atbrīvots.")
    }
}

var object1: MyObject? = MyObject() // object1 - stipra atsauce, MyObject atsauču skaitītājs == 1
var object2 = object1 // object2 - stipra atsauce, MyObject atsauču skaitītājs == 2

object1 = nil // Stipra atsauce object1 ir iestatīta uz nulli, MyObject atsauču skaitītājs == 1
object2 = nil // Stipra atsauce object2 ir iestatīta uz nulli, MyObject atsauču skaitītājs == 0
// MyObject tiek atbrīvots