2012-05-10 11 views
7

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

+0

संबंधित प्रश्न: [उद्देश्य-सी सी # में ओवरराइड के बराबर] (http://stackoverflow.com/questions/1034554/objective-c-equivalent-of-override-in-c-sharp) –

उत्तर

3

नहीं। उद्देश्य-सी में सभी विधियां उद्देश्य-सी के संदेश के माध्यम से भेजी जाती हैं, इसलिए सभी विधियों को ओवरराइड किया जा सकता है। वह भाषा का हिस्सा है।

इसे चिह्नित करने के लिए कोई सम्मेलन नहीं है, या तो। यह उस भाषा का हिस्सा है जो ऐसा होता है, और यदि आप अन्यथा टिप्पणी करना चाहते हैं तो यह बाद में भ्रमित हो जाएगा, जब आपने इसे बाद में किया था, गलती से या जानबूझकर।

+0

मुझे पता है कि, जावा के साथ स्थिति समान है - (लगभग) सभी फ़ंक्शंस वर्चुअल हैं, हालांकि मुझे अभी भी यह चेतावनी देने के लिए बिंदु दिखाई देता है कि आप एक मूल विधि को ओवरराइड कर रहे हैं। यह निश्चित रूप से '[सुपर लोड व्यू] को कॉल न करने जैसी त्रुटियां करेगा; –

+0

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

+0

(बीटीडब्ल्यू, महान सवाल) –

1

नहीं, वास्तव में नहीं।

यह गतिशील प्रेषण की वजह से शायद उतना ही महत्वपूर्ण नहीं लगता है।

1

मुझे यकीन है कि Xcode करता है, तो नहीं कर रहा हूँ, लेकिन JetBrains से AppCode आईडीई हो जाता है ताकि तरह, हल्का नीला ओवरराइड बिल्ला मार्जिन में साथ ओवरराइड तरीकों annotates:

AppCode Override

। । इसके आगे (दिखाया गया), मैं #pragma टैग के साथ ओवरराइड विधियों को एनोटेट करने के लिए कुछ लाइव टेम्पलेट्स (एक्सकोड कोड में स्नैकेट) भी बनाना चाहता हूं। मुझे लगता है कि यह इस क्रम में एक मानक संरचना को परिभाषित करने में मदद करता है:

  • वर्ग तरीकों
  • प्रारंभ & विनाश
  • सार्वजनिक तरीकों/प्रोटोकॉल तरीकों
  • ओवरराइड तरीकों
  • निजी तरीकों

और लाइव टेम्पलेट्स/कोड स्निपेट्स करके मैं बस 'ओवरराइड [टैब]' टाइप कर सकता हूं और आईडीई मेरे लिए #pragma टैग बनाएं।

। । शायद आप यह जांचने के लिए ओसीलिंट का भी उपयोग कर सकते हैं कि इस संरचना का पालन किया जाता है।