के बीच अंतर कोई भी कृपया मुझे बता सकता है कि initWithNibName का उपयोग कब करें और initWithCoder का उपयोग कब करें?initWithNibName और initWithCoder
उत्तर
एप्पल के प्रलेखन से:
InitWithCoder संग्रह करने के लिए एक वस्तु को कूटबद्ध। एक कोडर ऑब्जेक्ट को आमंत्रित करके ऐसा करने के लिए ऑब्जेक्ट को निर्देश देता है विथकोडर: या initWithCoder:। एन्कोडविथकोडर: ऑब्जेक्ट को प्रदान किए गए कोडर को इसके आवृत्ति चर को एन्कोड करने के लिए निर्देश देता है ...
InitWithNibName निर्दिष्ट बंडल में nib फ़ाइल में प्रारंभ की गई एक NSNib ऑब्जेक्ट देता है। निब फ़ाइल लोड होने के बाद, एनएसएनआईबी ऑब्जेक्ट निब द्वारा संदर्भित अतिरिक्त संसाधनों का पता लगाने के लिए बंडल के संसाधन मानचित्र का उपयोग करता है। यदि आपने बंडल पैरामीटर के लिए शून्य निर्दिष्ट किया है, तो NSNib ऑब्जेक्ट उन संसाधनों को उस फ़ाइल के लिए निब फ़ाइल फ़ाइल के मालिक से जुड़े बंडल में देखता है। अगर निब फ़ाइल में कोई मालिक नहीं है, तो NSNib ऑब्जेक्ट एप्लिकेशन के मुख्य बंडल में अतिरिक्त संसाधनों की तलाश करता है।
पूर्व का उपयोग आपके कोड में अलग-अलग ऑब्जेक्ट्स को एन्कोड करने के लिए किया जाता है, बाद में संसाधन वस्तुओं वाले एनएसएनआईबी फ़ाइल को पुनर्प्राप्त करने के लिए उपयोग किया जाता है।
initWithNibName:
आमतौर पर व्यू कंट्रोलर ऑब्जेक्ट के साथ उपयोग किया जाता है। विचार यह है कि आपके पास एनआईबी फ़ाइल (या एक्सआईबी, एक ही चीज़) है जिसमें UIView
(या NSView
) है जिसे आप पहले ही इंटरफ़ेस बिल्डर में डिज़ाइन कर चुके हैं। जब आपका व्यू कंट्रोलर लॉन्च होता है, तो इसमें view
प्रॉपर्टी और आउटलेट होता है जिसे आपको स्वयं आकर्षित करना होगा - सिवाय इसके कि आप इसे पहले से ही आईबी में डिज़ाइन कर चुके हैं। तो यह कन्स्ट्रक्टर आपको नए नियंत्रक ऑब्जेक्ट को आग लगाने की अनुमति देता है और यह बताता है कि एनआईबी फ़ाइल इसके विचार को देखने के लिए कहती है। यह सुनिश्चित करने के लिए कि यह सफल है, इस विषय से थोड़ा सा है, यह सुनिश्चित करने के लिए अपने एनआईबी को तारों की चर्चा करना।
initWithCoder:
का एक और कार्य पूरी तरह से है। जब आपने encodeWithCoder:
का उपयोग करके किसी ऑब्जेक्ट को क्रमबद्ध किया है, तो आपको अंततः इसे अपनी कक्षा के किसी ऑब्जेक्ट में बदलने के लिए डेटा को अनसुलझा (या, "डीकोड") करने की आवश्यकता होगी।
वैसे भी, रिकैप करने के लिए: यदि आप अपनी ऑब्जेक्ट NSCoding
प्रोटोकॉल का समर्थन करना चाहते हैं तो आप केवल अपनी कक्षा पर encodeWithCoder:
और initWithCoder:
लागू करेंगे। जब आप किसी ऑब्जेक्ट को फायर करना चाहते हैं तो आप initWithNibName:
(आमतौर पर इसे स्वयं लागू नहीं करते हैं) का उपयोग करते हैं जो एनआईबी फ़ाइल में संग्रहित ऑब्जेक्ट्स के साथ अपनी गुणों को प्रारंभ कर सकता है।
NSCoding
over here का एक बहुत अच्छा दृश्य है।
स्टोरीबोर्ड
आप के बाद से ही पूर्व शुरू हो जाती है जब से एक दृश्य लोड हो रहा है स्टोरीबोर्ड-initWithNibName
को -initWithCoder:
को प्राथमिकता देनी चाहिए।
- 1. UIViewController (init और initWithNibName)
- 2. initWithCoder क्या है?
- 3. initWithNibName, awakeFromNib और viewDidLoad का विवरण?
- 4. अनंत लूप जब initWithCoder ओवरराइडिंग
- 5. initWithNibName वी.एस. NSBundle के loadNibNamed
- 6. initWithNibName के साथ पारित पैरामीटर:
- 7. UIViewController init बनाम initWithNibName: बंडल:
- 8. initWithCoder में बनाए रखने का उपयोग करें?
- 9. मैं initWithCoder का उपयोग कब करूं: विधि?
- 10. उद्देश्य सी - मैं initWithCoder विधि का उपयोग कैसे करूं?
- 11. ViewDidLoad initWithNibName से पहले बुलाया जा रहा है?
- 12. initWithNibName मिलान फ़ाइल नाम के नियम क्या हैं?
- 13. एक दृश्य बनाएं (initWithNibName से प्रारंभ) अपने सभी सबव्यू
- 14. मुझे कॉल करने की आवश्यकता कब है - [UIViewController initWithNibName: बंडल:]?
- 15. आप एन्कोडविथकोडर का उपयोग कब करते हैं: और initWithCoder: आईफोन पर?
- 16. initWithCoder में: एनएससीओडर (एक UINibDecoder) में कुंजी क्या हैं? (UIImageView के लिए)
- 17. initWithCoder आइटम को सही तरीके से प्रारंभ क्यों नहीं कर रहा है?
- 18. मुझे initWithNibName का उपयोग करके दृश्य नियंत्रक को कब प्रारंभ करना चाहिए?
- 19. क्यों initWithNibName मेरे UIViewController subclass के लिए काम नहीं करता है?
- 20. awakeFromNib को मेरे व्यू कंट्रोलर
- 21. एक और
- 22. निब फ़ाइल और विरासत के साथ UIViewController
- 23. addChildViewController और presentModelViewController
- 24. एनएसवी व्यूंट्रोलर और निब
- 25. आईओएस 5 स्टोरीबोर्ड और निब्स
- 26. स्टोरीबोर्ड
- 27. UIView addSubview और subview प्रदर्शित नहीं किया जाता
- 28. एनएससीओडी: प्राचीन प्रकार के लिए एन्कोडर और डिकोडर
- 29. TTViewController और popupViewController विधि
- 30. दृश्य को कैसे धक्का दें, वापस जाएं और दृश्य पर वापस आएं?
आह, ऐसा लगता है कि जॉर्डन पहले ही इसे नीचे खींचा गया है ;-) –