ऑब्जेक्ट ए अन्य वस्तुओं (ऑब्जेक्ट बी, ऑब्जेक्ट सी, इत्यादि) को किसी भी संदर्भ को जारी करने के लिए ज़िम्मेदार है जब इसे हटाया जाता है - यह स्वचालित रूप से नहीं होता है।
इस वस्तु पर -dealloc
विधि से किया जाता है:
- (void)dealloc
{
[propertyB release];
[propertyC release];
[super dealloc];
}
(या यदि गुण पढ़ने/लिखने और retain
के रूप में चिह्नित कर रहे हैं, तो आप [self setPropertyB:nil]
स्थानापन्न कर सकते हैं, आदि)।
तो क्या होगा जब ऑब्जेक्ट ए के सभी संदर्भ दूर हो जाएंगे, यह बदले में, गुणों बी और सी पर संदर्भ गणना को कम कर देता है। यदि उन ऑब्जेक्ट्स केवल ऑब्जेक्ट ए के स्वामित्व में हैं, तो वे भी समाप्त हो जाएंगे परिणामस्वरूप हटा दिया जा रहा है।
(यह आपके द्वारा टैग किए गए सभी आईफोन ओएस विकास के बारे में सच है। मुझे लगता है कि आप मैक पर कचरा-एकत्रित वातावरण के बारे में बात नहीं कर रहे हैं, जिसमें विभिन्न नियम और व्यवहार हैं और कुछ चीजें स्वचालित रूप से करती हैं।)
स्रोत
2010-07-15 15:12:34
+1 यदि आपको संपत्ति को 'प्रतिलिपि' के रूप में घोषित किया गया है तो आपको भी रिलीज़ करना होगा। –