जब UIViewController की दृश्य संपत्ति का उपयोग किया जाता है, तो यह पहले यह देखने के लिए जांच करता है कि यह एक मौजूदा दृश्य है या नहीं, और उसे वापस कर देता है। यदि नहीं, तो यह इसके निब या कॉल -लोड व्यू लोड करता है।यह निर्धारित करने का सबसे अच्छा तरीका है कि UIViewController लोड हो चुका है, और उसका वैध दृश्य है?
जब एक नियंत्रक को -didReceiveMemory चेतावनी संदेश प्राप्त होता है, तो डिफ़ॉल्ट व्यवहार उस कैश किए गए दृश्य को निकालना है (माना जाता है कि यह उस समय उपयोग में नहीं है)।
यदि मैं ओवरराइड करता हूं-didReceiveMemoryWarning, मैं कैसे निर्धारित कर सकता हूं कि दृश्य साफ़ कर दिया गया है या नहीं? मेरी समझ यह है कि डिफ़ॉल्ट कार्यान्वयन जांचता है कि क्या self.view.superview == nil। यदि ऐसा है, तो यह कैश किए गए दृश्य को साफ़ करता है। बेशक, यह पहली बार यह देखने के लिए जांच करता है कि एक कैश किए गए दृश्य है, और यदि नहीं, तो यह कुछ भी नहीं करता है। हालांकि, मैं, सबक्लास के रूप में, self.view.superview को कॉल नहीं कर सकता, क्योंकि एक दृश्य नहीं है, यह एक उत्पन्न करेगा।
तो, अगर मैं मौजूद हूं तो मैं कैसे पता लगा सकता हूं? (मैं सिर्फ _view पर नहीं देख सकता; डिवाइस के निर्माण के दौरान मुझे त्रुटियों को जोड़ना पड़ता है)।
यह कुछ हद तक नाजुक लगता है (यह हमेशा अपने स्वयं के एक्सेसर्स का उपयोग करके ऐप्पल पर निर्भर करता है), लेकिन ऐसा लगता है। धन्यवाद! –
मैं मानता हूं कि यह थोड़ा नाजुक है, लेकिन कुछ और दस्तावेज नहीं है, और निश्चित रूप से ivars तक पहुंचने से कम कमजोर है –
['- [UIViewController isViewLoaded]'] (http://stackoverflow.com/a/1076425/242933)। – ma11hew28