Avatar ·

Swift में मेमोरी प्रबंधन में weak और unowned रेफरेंस के बीच क्या अंतर है?

सभी को नमस्कार! मैं Swift सीख रहा हूँ और ARC (Automatic Reference Counting) को समझने की कोशिश कर रहा हूँ। मैंने दस्तावेज़ पढ़ा, लेकिन weak और unowned रेफरेंस के बीच अंतर समझ नहीं पा रहा हूँ। दोनों ही reference count नहीं बढ़ाते, तो फिर अंतर क्या है?\n\nमेरे पास एक उदाहरण है। मैं एक सरल एप्लिकेशन बना रहा हूँ जिसमें user profile और उसका avatar है। जब user स्क्रीन से बाहर जाता है, तो मैं चाहता हूँ कि Profile और उसके Avatar ऑब्जेक्ट मेमोरी से रिलीज़ हो जाएं। लेकिन strong reference cycle के कारण मुझे memory leak हो रहा है।\n\nयहाँ मेरा सरलीकृत कोड है:\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