2009-11-02 9 views
5

में नाली, रिहाई, dealloc और बनाए रखने के बीच अंतर हाय मैं नाली, रिलीज, dealloc और उद्देश्य सी में बनाए रखने के बीच अंतर जानना चाहता हूँ।उद्देश्य-सी/

उत्तर

22
  • retain एक वस्तु पर संदर्भ संख्या में वृद्धि
  • release कुछ उद्देश्य सी से जुड़े अरकाना के कारण एक वस्तु
  • drainपर रिहाई के स्थान पर प्रयोग किया जाता है पर संदर्भ कम हो जाती है केवल NSAutoreleasePool के लिए वस्तुओं कचरा संग्रह
  • dealloc एक बार बनाए रखने के बाद सिस्टम द्वारा कॉल किया जाता है ऑब्जेक्ट हिट 0 की गणना करता है। यह वह जगह है जहां आप अपनी वस्तु के विभिन्न चीजों को साफ करते हैं (एक deconstructor या finalizer की तरह)। आपको कभी दिनचर्या के अंत में [super dealloc] पर कॉल करने के अलावा इसे सीधे कॉल करना चाहिए।

आपको वास्तव में ऐप्पल के मेमोरी प्रबंधन documentation के माध्यम से पढ़ना चाहिए।

+0

आपको बहुत बहुत धन्यवाद ... – suse

+0

-एनएसयूयूटोरिलीपूल पर ड्र्रेन उपयोगी है ताकि यह जीसी के तहत भी काम करे। अर्थात्, यह तुरंत एक संग्रह ट्रिगर करता है। अगर हम इस्तेमाल करते हैं, तो कृपया जीसी के तहत, उस संदेश को नजरअंदाज कर दिया जाएगा, और कुछ भी नहीं होगा। इस महान उत्तर के लिए – kperryua

+0

+1 – swiftBoy