Sobes.tech
Junior — Middle

Dans quelles situations utilise-t-on une référence faible à un objet?

sobes.tech IA

Réponse de l'IA

Une référence faible (weak reference) en iOS est utilisée pour éviter les cycles de références fortes (retain cycles), qui peuvent entraîner des fuites de mémoire. Elle n'augmente pas le compteur de références de l'objet, donc l'objet peut être libéré même s'il existe des références faibles.

Situations typiques d'utilisation des références faibles :

  • Délegats : souvent déclarés comme weak pour éviter un cycle entre l'objet et son délégué.
  • Closures : si une closure capture self, pour éviter un cycle, self est capturé avec [weak self].
  • Connexions entre objets, où un objet possède un autre, et l'autre doit avoir une référence sans en être propriétaire.

Exemple avec un délégué :

protocol SomeDelegate: AnyObject {
    func didUpdate()
}

class SomeClass {
    weak var delegate: SomeDelegate?
}

Ainsi, la référence faible aide à gérer la mémoire et à prévenir les fuites.