À quoi servent les références faibles dans le langage de programmation Swift?
sobes.tech IA
Réponse de l'IA
Les références faibles (weak references) en Swift sont utilisées pour éviter les cycles de références fortes (strong reference cycles), qui peuvent entraîner des fuites de mémoire. Dans le système de comptage automatique de références (ARC), les objets sont maintenus en mémoire tant qu'ils ont des références fortes. Si deux objets se réfèrent mutuellement par des références fortes, ils ne seront jamais libérés.
Une référence faible n'augmente pas le compteur de références de l'objet, donc si aucune référence forte n'existe, l'objet sera libéré et la référence faible sera automatiquement mise à nil. Cela est particulièrement utile lors de l'utilisation de délégués, de closures et d'objets interconnectés.
Exemple d'utilisation d'une référence faible :
class Person {
var name: String
weak var apartment: Apartment? // référence faible
init(name: String) {
self.name = name
}
}
class Apartment {
let unit: String
var tenant: Person? // référence forte
init(unit: String) {
self.unit = unit
}
}
var john: Person? = Person(name: "John")
var unit4A: Apartment? = Apartment(unit: "4A")
john?.apartment = unit4A
unit4A?.tenant = john
john = nil // l'objet Person sera libéré, car apartment est une référence faible
unit4A = nil
Ainsi, les références faibles aident à éviter les fuites de mémoire en rompant les cycles de références fortes.