Junior — Middle
¿En qué situaciones se utiliza una referencia débil a un objeto?
sobes.tech AI
Respuesta de la IA
Una referencia débil (weak reference) en iOS se utiliza para evitar ciclos de referencias fuertes (retain cycles), que pueden conducir a fugas de memoria. No incrementa el contador de referencias del objeto, por lo que el objeto puede ser liberado incluso si hay referencias débiles a él.
Situaciones típicas de uso de referencias débiles:
- Delegados: a menudo se declaran como
weakpara evitar un ciclo entre el objeto y su delegado. - Closures: si un closure captura
self, para evitar un ciclo,selfse captura con[weak self]. - Conexiones entre objetos, donde un objeto posee a otro, y el otro debe tener una referencia sin poseerlo.
Ejemplo con delegado:
protocol SomeDelegate: AnyObject {
func didUpdate()
}
class SomeClass {
weak var delegate: SomeDelegate?
}
De esta manera, la referencia débil ayuda a gestionar la memoria y prevenir fugas.