iphone - Follow up viewDidUnload vs. dealloc question -


स्पष्टीकरण के लिए एक अनुवर्ती प्रश्न:

तो हम कहते हैं कि कम स्मृति त्रुटि, और दृश्य छुपा हुआ है, और देखेंडडयूएनलोड को कहा जाता है। हम रिहाई और शून्य नृत्य करते हैं। बाद में पूरे व्यू स्टैक की जरूरत नहीं है, इसलिए डेलोक को कहा जाता है। चूंकि मैं पहले से ही रिलीज़ और शून्य सामग्री को दृश्य में देख रहा हूं, डीआईडीयूएनलोड में, मेरे पास इसे डेअलोक में नहीं है। परफेक्ट।

लेकिन अगर कोई कम स्मृति त्रुटि नहीं है, तो देखेंडडयूएनलोड कभी भी नहीं कहा जाता है। Dealloc कहा जाता है और जब से मैं रिलीज और शून्य सामान नहीं है, वहाँ एक स्मृति रिसाव है।

दूसरे शब्दों में, dealloc कभी दृश्य बिना बुलाया जा सकता है? पहले आईडी बुलाया जा रहा है?

और व्यावहारिक अनुवर्ती अनुवर्ती है, यदि मैं कुछ को देखने और देखने में कुछ सेट करता हूं, और मैं इसे रिलीज करता हूं और दृश्य में शून्य करने के लिए सेट करता हूं। डीडयूएनलोड, क्या मैं इसे dealloc से बाहर छोड़ देता हूं, या क्या मैं dealloc में एक बचाव की मुद्रा में शून्य जांच करता हूं और जारी / क्या यह शून्य नहीं है?

दोनों में इसे रिलीज करें। आपको शून्य की जांच करने की आवश्यकता नहीं है एक शून्य पर रिलीज कुछ भी नहीं करता है।

हालांकि, दृश्य में डीडयूएनलोड रिलीज नहीं करते हैं कि आप आसानी से दृश्य डीडलोड में फिर से नहीं बना सकते हैं, अगर दृश्य पुनः लोड हो जाता है।

सामान्य रूप से (नहीं मेमोरी चेतावनियाँ) देखेंडडयूएनलोड को नहीं कहा जाता है, केवल डेलोक कहलाता है।


Comments