2011-06-23 11 views
7

मैं "कोड का उपयोग करें" चेक के साथ एक्सकोड नेविगेशन नियंत्रक टेम्पलेट के आधार पर बहुत से सरल परीक्षण ऐप्स बनाकर कोर्डटा सीख रहा हूं।जागने के BenifitsFromNib?

ऐप प्रतिनिधि में जागरूकता FromNib विधि मेरे लिए समस्याओं का स्रोत रहा है, क्योंकि मैं नियंत्रक को अन्य दृश्य जोड़ रहा हूं और लोड अनुक्रम बदल रहा हूं, ताकि रूटव्यू कंट्रोलर दूसरी या तीसरी पसंद हो।

मुझे पता चला है कि क्या जाग रहा है FromNib कर रहा है, और मैंने इसे हटा दिया है, इसलिए ऐप प्रतिनिधि अब किसी विशेष दृश्य से बंधे नहीं है। (इसलिए जब मैं रूटव्यू कंट्रोलर लोड करना चाहता हूं, तो मैं इसे नियमित दृश्य के रूप में लोड करूंगा, और दृश्य के लिए प्रबंधित ऑब्जेक्ट कॉन्टेक्स्ट को प्रारंभ करने के लिए अपने स्वयं के दृश्य डिडलोड का उपयोग करूंगा)।

मेरा प्रश्न: क्या AppDelegate में awakeFromNIb का उपयोग कर प्रदर्शन लाभ या अन्य लाभ हैं? या यह वही काम करने का एक और तरीका है जैसा कि मैं viewDidLoad विधि से कर रहा हूं?

उत्तर

5

विभिन्न विधियों और विभिन्न परिस्थितियों में सभी विधियां आग लगती हैं।

awakeFromNib तब कहा जाता है जब कक्षा से जुड़े निब फ़ाइल डिस्क से लोड होती है। कोई भी वर्ग जो निब के मालिक हो सकती है उसका उपयोग कर सकती है। viewDidLoad केवल नियंत्रकों को देखकर उपयोग किया जाता है। आमतौर पर इसे निब से लोड करते समय भी बुलाया जाता है लेकिन इसे स्मृति में बनाए गए दृश्य (बहुत दुर्लभ परिस्थिति) द्वारा भी बुलाया जा सकता है।

किसी भी मामले में, आप केवल कार्यक्षमता डालते हैं कि आप केवल एक बार दौड़ना चाहते हैं उदाहरण पहले लोड किया गया है। जैसे एक सामान्य न्यूबी गलती viewDidLoad में कोड डालना है जिसे दृश्य दिखाई देने पर हर बार चलाने की आवश्यकता होती है। मास्टर व्यू के साथ कहें जो एक विस्तृत दृश्य खोलता है और फिर विवरण दृश्य को खारिज करते समय फिर से दिखाई देता है। यदि मास्टर व्यू के लिए कोड viewDidLoad में है तो यह केवल पहली बार मास्टर व्यू लोड हो जाएगा, लेकिन बाद में किसी भी समय मास्टर व्यू गायब हो जाता है और फिर से दिखाई नहीं देता है।

आप आमतौर पर किसी अन्य विचार को प्रारंभ नहीं करते हैं या ऐप प्रतिनिधि के जागने में कुछ भी नहीं करते हैं। आमतौर पर यह applicationDidFinishLaunching में किया जाता है।

+0

ठीक है, धन्यवाद। मैं सिर्फ चिंतित था कि ऐप प्रतिनिधि में जागने से FromNib से छुटकारा पाने और प्रारंभ करने के लिए प्रारंभिक कोड को स्थानांतरित करने सेडिडलोड प्रदर्शन को कम कर सकता है। – nick

संबंधित मुद्दे

 संबंधित मुद्दे