Sobes.tech
Middle

Jak fungují počítadla (retention counts) se silnými odkazy v iOS?

sobes.tech AI

Odpověď od AI

Při přiřazení objektu proměnné se silnou referencí se počet odkazů na objekt zvýší o 1. Když se silná reference nastaví na null nebo opustí rozsah, počet odkazů se sníží o 1. Objekt je uvolněn, když počet odkazů dosáhne nuly a již nemá žádné silné reference.

Příklad:

class MyObject {
    deinit {
        // Volá se při uvolnění objektu
        print("MyObject byl uvolněn.")
    }
}

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

object1 = nil // Silná reference object1 nastavena na null, počet odkazů na MyObject == 1
object2 = nil // Silná reference object2 nastavena na null, počet odkazů na MyObject == 0
// MyObject je uvolněn