Junior — Middle
Quels sont les avantages et inconvénients de l'utilisation du type Unowned en programmation?
sobes.tech IA
Réponse de l'IA
Le type unowned en Swift est utilisé pour créer une référence faible qui n'augmente pas le compteur de références, mais on suppose que l'objet auquel elle fait référence existera toujours pendant son utilisation.
Avantages :
- Évite les cycles de références fortes, prévenant les fuites de mémoire.
- N'est pas optionnel, donc ne nécessite pas de déballage (unwrap).
Inconvénients :
- Si l'objet référencé
unownedest libéré, accéder à cette référence entraînera une erreur d'exécution. - Nécessite de faire confiance à la durée de vie de l'objet référencé, qui doit être plus longue ou égale à celle de la référence.
Exemple d'utilisation :
class Owner {
var pet: Pet?
}
class Pet {
unowned let owner: Owner
init(owner: Owner) {
self.owner = owner
}
}
let owner = Owner()
owner.pet = Pet(owner: owner)
Ici, Pet conserve une référence unowned à Owner pour éviter les cycles de références fortes.