Sobes.tech
Middle

Como funcionam os contadores (reter contagens) com links fortes no iOS?

sobes.tech IA

Resposta da IA

Ao atribuir um objeto a uma variável com uma referência forte, o contador de referências do objeto aumenta em 1. Quando a referência forte é definida como nula ou sai do escopo, o contador de referências diminui em 1. O objeto é desalocado quando o seu contador de referências atinge zero e não possui mais referências fortes.

Exemplo:

class MyObject {
    deinit {
        // Chamado na desalocação do objeto
        print("MyObject foi desalocado.")
    }
}

var object1: MyObject? = MyObject() // object1 - referência forte, contador de referências de MyObject == 1
var object2 = object1 // object2 - referência forte, contador de referências de MyObject == 2

object1 = nil // A referência forte object1 é definida como nula, contador de referências de MyObject == 1
object2 = nil // A referência forte object2 é definida como nula, contador de referências de MyObject == 0
// MyObject é desalocado