Sobes.tech
Junior — Middle

¿Puede explicar el concepto de referencias débiles en programación?

sobes.tech AI

Respuesta de la IA

Las referencias débiles (weak references) son referencias a objetos que no impiden que el recolector de basura elimine esos objetos de la memoria. A diferencia de las referencias fuertes, las referencias débiles permiten evitar fugas de memoria cuando un objeto ya no es necesario, pero todavía hay referencias a él.

Por ejemplo, en iOS (Swift o Objective-C), las referencias débiles se usan a menudo para prevenir ciclos de retención (retain cycles) entre objetos, especialmente en cierres o delegados:

class ViewController: UIViewController {
    var closure: (() -> Void)?

    func setup() {
        closure = { [weak self] in
            self?.doSomething()
        }
    }

    func doSomething() {
        print("Acción realizada")
    }
}

Aquí, [weak self] garantiza que el cierre no retenga fuertemente a self, permitiendo que el controlador se libere de la memoria cuando ya no sea necesario.

De esta manera, las referencias débiles ayudan a gestionar el ciclo de vida de los objetos y previenen problemas de memoria.