Sobes.tech
Junior — Middle

Pouvez-vous expliquer le concept de références faibles en programmation?

sobes.tech IA

Réponse de l'IA

Les références faibles (weak references) sont des références à des objets qui n'empêchent pas le ramasse-miettes de supprimer ces objets de la mémoire. Contrairement aux références fortes, les références faibles permettent d'éviter les fuites de mémoire lorsque l'objet n'est plus nécessaire, mais qu'il existe encore des références vers lui.

Par exemple, en iOS (Swift ou Objective-C), les références faibles sont souvent utilisées pour prévenir les cycles de rétention (retain cycles) entre objets, notamment dans les closures ou les délégués :

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

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

    func doSomething() {
        print("Action effectuée")
    }
}

Ici, [weak self] garantit que la closure ne retient pas fortement self, permettant au contrôleur d'être libéré de la mémoire lorsqu'il n'est plus nécessaire.

Ainsi, les références faibles aident à gérer le cycle de vie des objets et à prévenir les problèmes de mémoire.