Junior — Middle
Dans quelles situations est-il préférable d'utiliser une référence faible (weak var) en Swift?
sobes.tech IA
Réponse de l'IA
Les références faibles (weak var) en Swift sont utilisées pour prévenir les cycles de références fortes (retain cycles), qui conduisent à des fuites de mémoire. Il est préférable d'utiliser des références faibles dans les situations suivantes :
- Lorsqu'un objet A fait référence à un objet B, et que l'objet B fait référence de retour à l'objet A, et qu'une de ces références doit être faible pour éviter un cycle.
- Dans les délégués (delegates), où le délégué est généralement déclaré comme weak pour ne pas maintenir l'objet délégué en mémoire.
Exemple :
class ViewController: UIViewController {
var timer: Timer?
func startTimer() {
timer = Timer.scheduledTimer(withTimeInterval: 1.0, repeats: true) { [weak self] _ in
self?.updateUI()
}
}
func updateUI() {
// mise à jour de l'interface
}
}
Ici, self est capturé comme une référence faible pour éviter un cycle de rétention entre le timer et le contrôleur.