Sobes.tech
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 weak para evitar un ciclo entre el objeto y su delegado.
  • Closures: si un closure captura self, para evitar un ciclo, self se 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.