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