Junior — Middle
¿Por qué se recomienda usar una referencia débil a uno mismo (weak self) en el código que utiliza cierres?
sobes.tech AI
Respuesta de la IA
El uso de referencias débiles (weak self) en los cierres es necesario para prevenir ciclos de referencias fuertes (retain cycles), que conducen a fugas de memoria.
Cuando un cierre captura self como una referencia fuerte, y self contiene ese cierre (por ejemplo, en una propiedad), se mantienen mutuamente, y ninguno de los objetos se libera.
Ejemplo de uso de una referencia débil:
someAsyncCall { [weak self] in
guard let self = self else { return }
self.doSomething()
}
Aquí, self se captura débilmente, por lo que si el objeto self se destruye antes de que se ejecute el cierre, este no lo mantendrá en memoria, lo que previene una fuga.