Junior — Middle
Dans quelles situations doit-on utiliser le mot-clé `unowned` en Swift?
sobes.tech IA
Réponse de l'IA
Le mot-clé unowned en Swift est utilisé pour déclarer une référence faible qui n'est pas optionnelle et n'augmente pas le compteur de références de l'objet.
Il est utilisé dans des situations où il existe une référence cyclique entre objets, mais où il est garanti que l'objet référencé existera plus longtemps que la référence unowned.
Par exemple, dans des relations de "parent — enfant", où l'enfant maintient une référence unowned au parent pour éviter un cycle:
class Parent {
var child: Child?
}
class Child {
unowned let parent: Parent
init(parent: Parent) {
self.parent = parent
}
}
let dad = Parent()
let kid = Child(parent: dad)
dad.child = kid
Si l'objet référencé par unowned est supprimé, tenter d'accéder à cette référence entraînera une erreur à l'exécution. Par conséquent, unowned convient lorsque le cycle de vie de l'objet est garanti d'être plus long que la référence à celui-ci.