2012-02-04 7 views
5

मैं ओबीजेसी और आईओएस विकास का अध्ययन कर रहा हूं। मेरे ऐप्स में उपयोग किए जाने वाले प्रत्येक घटक प्रोग्रामेटिक रूप से (दृश्य, बटन, लेबल इत्यादि) बनाए जाते हैं।विधि के बदले iBAction के रूप में शून्य का उपयोग करें

यहाँ मेरी कोड

... 
UIButton *btn = [UIButton buttonWithType:UIButtonTypeRoundedRect]; 
[self.btn addTarget:self 
        action:@selector(someAction:) 
     forControlEvents:UIControlEventTouchDown]; 
.... 


-(void)someAction 
{ 
logic 
} 

मैं नोटिस कि मैं चयनकर्ता की वापसी प्रकार के रूप में IBAction के बजाय शून्य का उपयोग कर सकते है। क्या यह सही दृष्टिकोण है? क्या कोई नुकसान हो सकता है?

+0

[आईबीओटलेट और आईबीएक्शन] के संभावित डुप्लिकेट (http://stackoverflow.com/questions/1643007/iboutlet-and-ibaction) –

उत्तर

17

IBAction का उपयोग एक्सकोड को बताता है कि आप इंटरफ़ेस बिल्डर में एक विधि विधि के रूप में उपलब्ध होने के तरीके को विधि चाहते हैं। यही एकमात्र प्रभाव है। अन्यथा यह void के समान है। UINibDeclarations.h में वास्तव में आप इस मिलेगा:

#define IBAction void 

IBAction का उपयोग करना एक अच्छा विचार है, भले ही आप निब फ़ाइलों का उपयोग नहीं करते है, क्योंकि यह पाठक (आप या एक सहकर्मी) आप करने का इरादा के लिए एक संकेत है यूआई नियंत्रण की कार्रवाई के रूप में विधि का उपयोग करें।

+0

कोई नया विषय नहीं खोलना। मैं आईबी का उपयोग करके प्रोग्रामेटिक रूप से सब कुछ बनाना पसंद करता हूं। शायद पागल लगता है, लेकिन यह दृष्टिकोण मेरे लिए सबसे आसान है। क्या वे उस दृष्टिकोण का उपयोग करने के किसी भी विपक्ष हैं? – objlv

+4

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

+0

एक्सकोड के संपादक में, यह इंगित करने के लिए एक छोटा आइकन है कि यह कनेक्ट है या नहीं। गैर-आईबी विधि/संपत्ति के लिए IBAction/IBOutlet का उपयोग भ्रमित हो सकता है। लेकिन वैसे भी, यह स्वाद का मामला है। – hoshi

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