Sobes.tech
Middle

¿Cómo funcionan los contadores (retener cuentas) con enlaces fuertes en iOS?

sobes.tech AI

Respuesta de la IA

Al asignar un objeto a una variable con una referencia fuerte, el contador de referencias del objeto aumenta en 1. Cuando la referencia fuerte se establece en nulo o sale del ámbito, el contador de referencias disminuye en 1. El objeto se desasigna cuando su contador de referencias alcanza cero y ya no tiene referencias fuertes.

Ejemplo:

class MyObject {
    deinit {
        // Se llama cuando el objeto se desasigna
        print("MyObject ha sido desasignado.")
    }
}

var object1: MyObject? = MyObject() // object1 - referencia fuerte, contador de referencias de MyObject == 1
var object2 = object1 // object2 - referencia fuerte, contador de referencias de MyObject == 2

object1 = nil // La referencia fuerte object1 se establece en nulo, contador de referencias de MyObject == 1
object2 = nil // La referencia fuerte object2 se establece en nulo, contador de referencias de MyObject == 0
// MyObject se desasigna