Avatar ·

Was ist der Unterschied zwischen weak und unowned Referenzen in Swift bei der Speicherverwaltung?

Hallo zusammen! Ich lerne Swift und versuche, ARC (Automatic Reference Counting) zu verstehen. Ich habe die Dokumentation gelesen, kann aber den Unterschied zwischen weak und unowned Referenzen nicht verstehen. Beide scheinen den Referenzzähler nicht zu erhöhen, aber worin liegt dann der Unterschied?\n\nIch habe ein Beispiel. Ich schreibe eine einfache App mit einem Benutzerprofil und seinem Avatar. Wenn der Benutzer den Bildschirm verlässt, möchte ich, dass die Objekte Profile und Avatar aus dem Speicher freigegeben werden. Aber ich habe ein Speicherleck aufgrund eines starken Referenzzyklus.\n\nHier ist mein vereinfachter Code:\n\n```swift\nclass Profile {\n let name: String\n var avatar: Avatar?\n \n init(name: String) {\n self.name = name\n print("Profile \\(name) created")\n }\n \n deinit {\n print("Profile \\(name) deallocated")\n }\n}\n\nclass Avata