यदि आप सिम्युलेटर (मेनू में देखें) में मेमोरी चेतावनी जारी करते हैं, तो इसे किसी दृश्य से जुड़े किसी भी व्यू कंट्रोलर के लिए बुलाया जाएगा जो दिखाई नहीं दे रहा है।
ऐसा इसलिए है क्योंकि डिफ़ॉल्ट रूप से व्यू कंट्रोलर स्मृति चेतावनी अधिसूचनाओं के लिए पंजीकृत हैं, और वर्तमान में उपयोग नहीं किए जा रहे किसी भी दृश्य को व्यू कंट्रोलर द्वारा अनलोड किया जाएगा - viewDidUnload विधि वहां है ताकि आप जो कुछ भी चाहें उसे साफ़ कर सकें , अतिरिक्त मेमोरी को बचाने के लिए (या यदि आपने स्मृति को मुक्त करने में मदद के लिए कुछ आईबीओटलेट बनाए रखा है जो अन्यथा अनलोड किए गए दृश्य द्वारा जारी किए जाएंगे)।
आम तौर पर आप किसी भी आईबीओटलेट्स को रिलीज करते हैं, जिसे इस विधि में रिलीज़ किया जाना चाहिए (और संदर्भों को शून्य पर सेट किया जाना चाहिए)।
स्रोत
2009-08-17 02:29:00
ऐसा लगता है कि इसे जरूरी नहीं कहा जाता है; एक UIViewController बिना कॉलिंग व्यूडिडलोड के बिना हटाया जा सकता है। – beetstra
व्यापक परीक्षण के बाद, मैं निश्चित रूप से देखता हूं कि viewDidUnload कभी-कभी नहीं कहा जा सकता है। मैं दृश्य नियंत्रकों को बिना देखने के dealloc'd मिल रहा है DidUnload बुलाया जा रहा है। –
इस प्रश्न को हटाया जाना चाहिए। viewDidUnload को बहिष्कृत किया गया है और अब आईओएस 6 में नहीं कहा जाता है। –