Junior — Middle
¿En qué situaciones es preferible usar una referencia débil (weak var) en Swift?
sobes.tech AI
Respuesta de la IA
Las referencias débiles (weak var) en Swift se utilizan para prevenir ciclos de referencias fuertes (retain cycles), que conducen a fugas de memoria. Es recomendable usar referencias débiles en las siguientes situaciones:
- Cuando el objeto A referencia al objeto B, y el objeto B referencia de vuelta al objeto A, y una de estas referencias debe ser débil para evitar un ciclo.
- En los delegados (delegates), donde el delegado generalmente se declara como weak para no mantener el objeto delegado en memoria.
Ejemplo:
class ViewController: UIViewController {
var timer: Timer?
func startTimer() {
timer = Timer.scheduledTimer(withTimeInterval: 1.0, repeats: true) { [weak self] _ in
self?.updateUI()
}
}
func updateUI() {
// actualización de la interfaz
}
}
Aquí, self se captura como una referencia débil para evitar un ciclo de retención entre el temporizador y el controlador.