2013-02-28 8 views

उत्तर

3

एक ऑब्जेक्ट ऐसा कुछ है जो वास्तव में निब में एम्बेडेड होता है।

एक बाहरी ऑब्जेक्ट वह है जो निब लोड करने वाला कोड लोड समय पर प्रदान करने का वादा करता है (मुझे एक ऐसे शब्द के माध्यम से विश्वास है जो बाह्य वस्तुओं के लिए मानचित्र कुंजी करता है)।

अधिकांश लोग कभी भी फ़ाइल के मालिक के अलावा किसी बाहरी ऑब्जेक्ट का उपयोग नहीं करते हैं (जो आपके लिए पहले ही प्रदान किया गया है)। आप लगभग निश्चित रूप से ऑब्जेक्ट्स चाहते हैं।

+0

आप जब मैं प्रत्येक का प्रयोग करेंगे उदाहरण प्रदान करें सकते हैं:

आप नीचे दिए गए कोड का उपयोग कर अपने xib करने के लिए प्रॉक्सी वस्तु कनेक्ट कर सकते हैं? (बस विचार कोड नहीं)। धन्यवाद। – RCB

+1

@ आरसीबी: निब में लगभग सब कुछ किसी प्रकार का ऑब्जेक्ट है। यदि आप किसी कक्षा के किसी ऑब्जेक्ट को एम्बेड करना चाहते हैं तो आप शाब्दिक ऑब्जेक्ट का उपयोग करेंगे जो आईबी आपके निब में नहीं जानता है। आप अपने नए ऑब्जेक्ट के लिए क्लास वैल्यू को संपादित करके ऐसा करेंगे। ऑब्जेक्ट का उपयोग करना सीधे बहुत आम नहीं है। बाहरी वस्तु के लिए, आपको शायद ऐसा करने की आवश्यकता नहीं है। –

6

अन्य उत्तर में जोड़ना: आप एकाधिक xib के पार एक सामान्य ऑब्जेक्ट तक पहुंचने के लिए 'बाहरी ऑब्जेक्ट' का उपयोग कर सकते हैं। आप इसे अन्य तरीकों से भी कर सकते हैं, लेकिन यह सुविधाजनक होगा।

उदाहरण के लिए की तरह, यदि आप एक 'बड़े' कार्रवाई है कई xib खत्म हो चुका है बटन क्लिक के लिए प्रदर्शन किया और किया जाना है आप कई तरह के कार्यों के लिए है (और साथ ही अगर यह एक ही डेटा आप पर यह क्रिया करने कर रहे हैं) के बजाय, अगर addTarget:action... पर कॉल करके, आप इस वर्ग की प्रॉक्सी ऑब्जेक्ट बना सकते हैं और इसे बटन तक तार बना सकते हैं।

id *proxy = <someObject>; //The object you want to wire up 
//In the below line of code use the same key as the identifier you give for the proxy object in the Interface Builder 
UINib *nib = [UINib nibWithNibName:@"ViewController" bundle:Nil]; 
NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:proxyObject,@"proxy", nil]; 
NSDictionary *dict2 = [NSDictionary dictionaryWithObjectsAndKeys:dict,UINibExternalObjects, nil]; 
NSArray *nibArray = [nib instantiateWithOwner:self options:dict2]; 
self.view = [nibArray objectAtIndex:0]; 
संबंधित मुद्दे