ऐप्पल के व्यू कंट्रोलर प्रोग्रामिंग गाइड/मैसेजिंग मेमोरी कुशलता से;didReceiveMemoryWarning और viewDidUnload
didReceiveMemoryWarning
इस पद्धति का उपयोग करते हुए अपने दृश्य नियंत्रक के साथ जुड़े सभी noncritical कस्टम डेटा संरचनाओं पुनःआवंटन करने के लिए। यद्यपि आप वस्तुओं को देखने के संदर्भों को रिलीज़ करने के लिए इस विधि का उपयोग नहीं करेंगे, फिर भी आप इसे किसी भी दृश्य-संबंधित डेटा संरचनाओं को रिलीज़ करने के लिए उपयोग कर सकते हैं जिन्हें आपने पहले से ही अपने दृश्य में रिलीज़ नहीं किया था। (देखें वस्तुओं खुद को हमेशा viewDidUnload विधि में जारी किया जाना चाहिए।)
viewDidUnload
आप किसी भी डेटा दृश्य-विशिष्ट होता है और है कि आसानी से यदि पर्याप्त निर्मित किया जा सकता है कि पुनःआवंटन को viewDidUnload विधि का उपयोग कर सकते हैं दृश्य फिर से स्मृति में भरा हुआ है। यदि डेटा को पुनर्निर्मित करना बहुत समय लेने वाला हो सकता है, हालांकि, आपको यहां संबंधित डेटा ऑब्जेक्ट्स को रिलीज़ करने की आवश्यकता नहीं है। इसके बजाए, आपको उन ऑब्जेक्ट्स को अपने डीस रिसीव मेमरी चेतावनी विधि में रिलीज़ करने पर विचार करना चाहिए।
didReceiveMemoryWarning के लिए, हम गैर-महत्वपूर्ण डेटा संरचनाओं पुनःआवंटन की सिफारिश कर रहे हैं। तो, महत्वपूर्ण क्या है और क्या गैर-महत्वपूर्ण है?
इसके अलावा, यह रिलीज़ करने के लिए कहता है कि हमने पहले से ही VisualDnload में रिलीज़ नहीं किया था। लेकिन जब मेमोरी चेतावनी होती है तो रिसीव मेमरी चेतावनी कहा जाता है और दृश्य को अनलोड किया जा सकता है तो viewDidUnload कहा जाता है। तो, क्या यह उन कोडों को पूर्व घटना की विधि (didReceiveMemoryWarning) में ले जाने के बारे में बात कर रहा है या क्या मुझे घटनाओं के क्रम के बारे में कुछ याद आ रहा है?
viewDidUnload के लिए, हमें आसानी से देखने की अनुशंसा की जाती है जब दृश्य को फिर से लोड करते समय डेटा को दोबारा शुरू किया जाता है। तो, यदि कोई दृश्य उपयोग में है और इसे अनलोड नहीं किया जा सकता है, तो हम रीसेसिव मेमरी चेतावनी में समय लेने वाले डेटा क्यों जारी करेंगे? उन आंकड़ों के बाद, जब उपयोगकर्ता वर्तमान दृश्य में कुछ करने की कोशिश करता है, तो यह उन्हें लोड करने में भी समय लेने वाला होगा। सब से
जैसा कि आप इंगित करते हैं कि वे इसे समकक्ष कहते हैं लेकिन इसे स्मृति चेतावनी के बिना नहीं कहा जाता है। – lockedscope
तो आपका मतलब है "यह दिखाई देने योग्य नहीं है (बहुत सामान्य नहीं)" इसके द्वारा मोडल विचार, है ना? क्या कोई अन्य मामला है? – lockedscope
एक पूर्ण स्क्रीन मोडल के तहत दृश्य एक मामला हो सकता है, हां। मुझे यकीन नहीं है कि क्या अन्य मामले हैं। – imaginaryboy