Junior — Middle
Quel comportement est attendu lors de la déclaration d'une variable user en utilisant une référence faible avec weak var user = User()?
sobes.tech IA
Réponse de l'IA
En Swift, la déclaration d'une variable avec weak var user = User() crée une référence faible à l'objet User. Cela signifie que la référence n'augmente pas le compteur de références de l'objet, et si aucune autre référence forte à cet objet n'existe, il sera désinitialisé (supprimé de la mémoire).
Dans ce cas, si user est la seule référence à l'objet User, alors immédiatement après la création de l'objet, celui-ci sera libéré et user sera égal à nil.
Exemple :
class User {}
weak var user = User() // user sera nil immédiatement, car il n'y a pas de références fortes
print(user) // nil
C'est pourquoi, les références faibles sont généralement déclarées comme optionnelles (weak var user: User?), et elles sont utilisées pour éviter les cycles de rétention, par exemple, dans les délégués.