2012-06-03 5 views
5

मुझे अपनी कस्टम ऑब्जेक्ट की कक्षा पहचान की बजाय फ़ाइल की मालिक की क्लास पहचान क्यों सेट करनी चाहिए जो कि निब में दिखाया गया है और उससे कनेक्शन बनाते हैं? अगर मैं फ़ाइल के मालिक को शून्य पर सेट करता हूं तो क्या होगा? मेरे लिए सब कुछ शून्य फाइल के मालिक के साथ ठीक काम करता है तो उससे कनेक्शन करने में क्या सम्मान है?एक्सकोड xib फ़ाइलों में फ़ाइल के मालिक की क्या आवश्यकता है? क्या मैं फाइल के मालिक के बिना वही काम कर सकता हूं?

उत्तर

8

एक निब संग्रहीत वस्तु ग्राफ प्रतिनिधित्व करता है। आप इसे लोड कर सकते हैं और उस ऑब्जेक्ट ग्राफ़ का पुनर्गठन किया जाएगा। बात, आप आमतौर पर नए प्रोग्राम वाले ऑब्जेक्ट ग्राफ़ को अपने प्रोग्राम के पहले से मौजूद ऑब्जेक्ट ग्राफ़ में जोड़ना चाहते हैं। आप नहीं चाहते कि यह अलग-अलग खड़े हो, अन्य सभी चीज़ों से डिस्कनेक्ट हो।

कुछ तरीके हैं कि नव-लोडेड वस्तु ग्राफ कार्यक्रम की वस्तु ग्राफ के बाकी हिस्सों से जुड़ा हो सकता है कर रहे हैं। एक तरीका एनआईबी में उपलब्ध प्रॉक्सी ऑब्जेक्ट्स का सेट है। एप्लिकेशन ऑब्जेक्ट के लिए एक है। एक और ऐसी प्रॉक्सी ऑब्जेक्ट फ़ाइल का स्वामी है। प्रॉक्सी ऑब्जेक्ट एक ऐसी चीज है जिसका एनआईबी में प्रतिनिधित्व होता है लेकिन वास्तव में एनआईबी में निहित नहीं होता है। एनआईबी में अन्य वस्तुओं के विपरीत, एनआईबी लोड होने पर प्रॉक्सी द्वारा उत्पादित वस्तुओं को नहीं बनाया जाता है, एनआईबी लोड होने से पहले वे मौजूद होते हैं। प्रॉक्सी इन पूर्व-मौजूदा वस्तुओं और एनआईबी में वस्तुओं के बीच कनेक्शन की अनुमति देता है। इस प्रकार एनआईबी से नया ऑब्जेक्ट ग्राफ़ आपके प्रोग्राम के मौजूदा ऑब्जेक्ट ग्राफ़ से जोड़ा जा सकता है।

मेनमेनू एनआईबी असामान्य है। यह कोको द्वारा एप्लिकेशन स्टार्टअप पर स्वचालित रूप से लोड हो जाता है, जिसका अर्थ है कि पूर्व-मौजूदा वस्तुओं के रास्ते में (वास्तव में नहीं हो सकता है)। उस एनआईबी में आमतौर पर ऐप प्रतिनिधि का एक उदाहरण होता है, जो एक प्रकार का समन्वय नियंत्रक होता है। आमतौर पर, हालांकि, अन्य प्रकार के एनआईबी में समन्वय नियंत्रक नहीं होंगे। (उनमें NSArrayController जैसे मध्यस्थ नियंत्रक होते हैं, लेकिन यह अलग है।) इसके बजाय, नियंत्रक समन्वय आमतौर पर कोड में बनाए जाते हैं और अक्सर, वे एनआईबी लोड करने के लिए ज़िम्मेदार होते हैं।

उदाहरण के लिए, आप एक विंडो के लिए समन्वय नियंत्रक के रूप में NSWindowController का उपयोग करेंगे। खिड़की को एनआईबी में परिभाषित किया जाएगा। विंडो नियंत्रक को कोड में तत्काल किया जाएगा - जो भी कोड तय करता है कि एक खिड़की बनाई जानी चाहिए - और यह एनआईबी लोड करेगी। यह एनआईबी का फाइल मालिक भी होगा। यह खिड़की और एनआईबी की शीर्ष-स्तरीय वस्तुओं का प्रबंधन करेगा।

यदि आप फ़ाइल के मालिक को nil पर सेट कर रहे हैं, तो ए) आप शायद इस बिंदु पर बहुत ही सरल एनआईबी से निपट रहे हैं, और बी) आप लोड होने वाले एनआईबी से शीर्ष-स्तरीय ऑब्जेक्ट्स लीक कर सकते हैं।

+0

इंटरफ़ेस बिल्डर के बाईं ओर हमारे पास 2 अनुभाग हैं। प्लेसहोल्डर्स और ऑब्जेक्ट्स। चाहती है कि हम निब में एक MyView क्लास बनाते हैं। वह वर्ग ऑब्जेक्ट अनुभाग में दिखाई देता है और मैं निब के साथ आउटलेट-एक्शन कनेक्शन बना सकता हूं। अगर मैं फाइल के मालिक वर्ग को MyView बन गया हूं तो मैं वही कनेक्शन कर सकता हूं। इन दो स्थितियों का सम्मान क्या है? धन्यवाद –

+0

एनआईबी के स्वामित्व के लिए यह बहुत असामान्य होगा। इसके अलावा, आप दो अलग-अलग वस्तुओं के लिए कनेक्शन बनायेंगे। ऐसा लगता है कि आपने पूछा था "मैं एक वस्तु के गुण सेट कर सकता हूं। मैं किसी अन्य वस्तु के गुण भी सेट कर सकता हूं। क्या अंतर है?" यदि आप वास्तव में एनआईबी में एक दृश्य के लिए कनेक्शन बनाते हैं, तो वह वस्तु है जो जुड़ा हुआ है। यदि आप फ़ाइल के मालिक से कनेक्शन बनाते हैं, तो जब ऑब्जेक्ट लोड किया जाता है तो एनआईबी के मालिक के रूप में निर्दिष्ट ऑब्जेक्ट वह होता है जो जुड़ा होता है। जाहिर है, मालिक एनआईबी में किसी भी वस्तु नहीं हो सकता है। –

5

फ़ाइल का स्वामी वह फ़ाइल है जिसमें उस दृश्य के लिए सभी आईबीओटलेट्स और आईबीएक्शन शामिल हैं। उदाहरण के लिए, यदि आपके पास कक्षा "व्यू कंट्रोलर" है और इसमें IBOutlet UIButton *button और -(IBAction)changeViewWhenButtonPressed: (id) sender है, तो आउटलेट और एक्शन कनेक्ट करने का एकमात्र तरीका आपके व्यू के फ़ाइल के स्वामी के रूप में "व्यू कंट्रोलर" को सेट करने के माध्यम से है।

मुझे अपेक्षाकृत निश्चित है कि कक्षा पहचान फाइल के मालिक के समानार्थी है।

इसके अलावा, इन कड़ियों उपयोगी हो सकता है:

What are File Owner and First Responder in iPhone SDK - xCode?

File's Owner Definitions

What is File's Owner

+0

त्वरित प्रतिक्रिया के लिए धन्यवाद लेकिन मैं अभी भी स्तर 1 हूँ और मैं नहीं कर सकता वोट दें .. –

+0

यदि आप केन पर मेरी टिप्पणी का उत्तर दे सकते हैं तो यह बहुत अच्छा होगा :) –

3

"फ़ाइल का स्वामी" तरीका है कि निब में ऑब्जेक्ट्स निब के बाहर की वस्तुओं को संदर्भित कर सकते हैं, और इसके विपरीत। (ऐसा करने के कुछ और जटिल तरीके भी हैं, लेकिन इन्हें अक्सर उपयोग नहीं किया जाता है।) यदि आपको ऐसा करने की आवश्यकता नहीं है, तो आपको फ़ाइल के स्वामी का उपयोग करने की आवश्यकता नहीं है।

मुख्य ऐप के लिए, फ़ाइल का स्वामी एप्लिकेशन ऑब्जेक्ट है। यदि आपके सभी एप्लिकेशन लॉजिक कस्टम क्लास में हैं, तो आपको कनेक्शन बनाने की ज़रूरत नहीं हो सकती है, यदि आप निब में तुरंत चालू हो जाते हैं और यदि आप एप्लिकेशन को भेजे गए एक्शन संदेशों के लिए "पहला उत्तरदाता" का उपयोग करते हैं। यह ठीक है।

यदि आपके पास कोई दस्तावेज़ विंडो या पॉपओवर या कुछ है, तो अक्सर फ़ाइल का मालिक ऑब्जेक्ट देखा जा रहा है, और इसलिए यह यूई को संलग्न करने में सक्षम होना उपयोगी है। आप उस वर्ग के एक अलग उदाहरण से कई बार 'एक ही निब' लोड कर सकते हैं - एक अलग दस्तावेज़ या निरीक्षण-वस्तु या कुछ।

(मूल रूप से, फ़ाइल के मालिक बस जो भी वस्तु "मालिक:" करने के लिए पारित किया गया था है। निब लोडिंग विधि में पैरामीटर)

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