Avatar ·

Quelle est la différence entre les références weak et unowned en Swift pour la gestion de la mémoire ?

Bonjour à tous ! J'apprends Swift et j'essaie de comprendre l'ARC (Automatic Reference Counting). J'ai lu la documentation, mais je n'arrive pas à saisir la différence entre les références weak et unowned. Toutes deux ne semblent pas augmenter le compteur de références, mais quelle est alors la différence ? J'ai un exemple comme celui-ci. Je développe une application simple avec un profil utilisateur et son avatar. Si l'utilisateur quitte l'écran, je veux que les objets Profile et Avatar soient libérés de la mémoire. Mais j'obtiens une fuite mémoire à cause d'un cycle de références fortes. Voici mon code simplifié : ```swift class Profile { let name: String var avatar: Avatar? init(name: String) { self.name = name print("Profile \(name) created") } deinit { print("Profile \(name) deallocated") } } class Avatar { let imageName: String var profile: Profile? // Voici le problème init(imageName: String) { self.imageName = imageName print("Avatar \(imageName) created")