Sobes.tech
Middle

Cum funcționează contoarele (retention counts) cu linkuri puternice în iOS?

sobes.tech AI

Răspuns de la AI

Atunci când atribuiți un obiect unei variabile cu o referință puternică, contorul de referințe al obiectului crește cu 1. Când referința puternică devine nulă sau iese din domeniu, contorul de referințe scade cu 1. Obiectul este deallocat atunci când contorul de referințe ajunge la zero și nu mai are referințe puternice.

Exemplu:

class MyObject {
    deinit {
        // Se apelează la deallocarea obiectului
        print("MyObject a fost deallocat.")
    }
}

var object1: MyObject? = MyObject() // object1 - referință puternică, contorul de referințe al MyObject == 1
var object2 = object1 // object2 - referință puternică, contorul de referințe al MyObject == 2

object1 = nil // Referința puternică object1 devine nulă, contorul de referințe al MyObject == 1
object2 = nil // Referința puternică object2 devine nulă, contorul de referințe al MyObject == 0
// MyObject este deallocat