Sobes.tech
Junior

¿Qué son los modificadores de memoria strong?

sobes.tech AI

Respuesta de la IA

El modificador strong en Swift indica que una referencia a un objeto incrementa el contador de referencias a ese objeto en uno. Esto significa que el objeto se almacenará en memoria mientras exista al menos una referencia fuerte a él.

Se usa por defecto para tipos de referencia (clases). Asignar nil a una variable con el modificador strong reduce el contador de referencias. Cuando el contador de referencias llega a cero, el objeto se libera de la memoria.

Ejemplo:

class Person {
    var name: String
    init(name: String) {
        self.name = name
        print("\(name) está siendo inicializado")
    }
    deinit {
        print("\(name) está siendo destruido")
    }
}

var reference1: Person?
var reference2: Person?

reference1 = Person(name: "Alice") // Contador de referencias a Alice: 1
reference2 = reference1           // Contador de referencias a Alice: 2

reference1 = nil                   // Contador de referencias a Alice: 1
reference2 = nil                   // Contador de referencias a Alice: 0, Alice es destruida