एआरसी द्वारा शुरू की गई संपत्तियों के लिए दो नए मेमोरी प्रबंधन गुण हैं, strongऔर weak।
इसके अलावा copy, जो स्पष्ट रूप से कुछ पूरी तरह से अलग है, क्या strongबनाम retainऔर weakबनाम के बीच कोई अंतर हैं assign?
मेरी समझ से, यहां एकमात्र अंतर यह है कि पॉइंटर weakको असाइन nilकिया जाएगा , जबकि assignऐसा नहीं होगा, जिसका अर्थ है कि प्रोग्राम क्रैश हो जाएगा जब मैं एक संदेश जारी करने के बाद पॉइंटर को भेजता हूं। लेकिन अगर मैं उपयोग करता हूं weak, तो ऐसा कभी नहीं होगा, क्योंकि संदेश भेजने से nilकुछ नहीं होगा।
मैं किसी भी अंतर के बारे में नहीं जानता strongऔर retain।
क्या कोई कारण है कि मुझे assignऔर retainनई परियोजनाओं में उपयोग करना चाहिए , या जिस तरह से पदावनत किया जा रहा है?
weakऔर strong) और 4 चर जीवन क्वालिफायर ( __strong, __weak, __unsafe_unretained, __autoreleasing)। नीचे एआरसी नोट्स देखें।
assignARC के साथ संकलन करते समय एक त्रुटि हुई थी। इस बारे में कई हटाए गए उत्तर हैं। ऐसा लगता है कि अंतिम रिलीज़ से पहले इसे बदल दिया गया था। unsafe_unretainedहममें से बहुत से शुरुआती लोगों के लिए पसंदीदा विशेषता है। प्रमाण के लिए जो कि unsafe_unretainedएक मान्य विशेषता है, ऐप्पल के "प्रोग्रामिंग विथ ऑब्जेक्टिव-सी" को सेक्शन "एनकैप्सुलेटिंग डेटा" के तहत सबहडिंग के तहत "कुछ वर्गों के लिए असुरक्षित असुरक्षित संदर्भ का उपयोग करें"। जो कहता है: "एक संपत्ति के लिए, इसका मतलब असुरक्षित_सुविधा प्राप्त विशेषता का उपयोग कर रहा है:"
strong,weakऔरunsafe_unretained।