में उद्देश्य सी में एक विधि को ओवरराइड करता है, यदि आप कुछ सबक्लासिंग कर रहे हैं, और सुपरक्लास पर किसी विधि को ओवरराइड करने की योजना बना रहे हैं, तो क्या आपको अपने उपclass @interface में सुपरक्लास विधि को फिर से घोषित करना चाहिए?उद्देश्य सी सबक्लास जो सुपरक्लास
उदाहरण के लिए, यदि आप UIViewController (जैसे MyViewController) उपवर्गीकरण हैं, और आप "viewDidLoad" ओवरराइड करने के लिए योजना बना रहे हैं आपको लगता है कि विधि अपने MyViewController @interface घोषणा में शामिल होना चाहिए, या बस MyViewController.m में इसे लागू?
उदाहरणों में मैंने देखा है, मैंने इसे दोनों तरीकों से देखा है (आपके उप-वर्ग इंटरफ़ेस में विधि को फिर से घोषित करना, या विधि को फिर से घोषित नहीं करना)। कोई कार्यात्मक अंतर नहीं हो सकता है, लेकिन सबसे अच्छा अभ्यास क्या है?
+1 यह समझ में आता है। किसी को "कोको (ए)" जैसे नाम से पता होना चाहिए कि वह क्या कर रहा है। –
सुपरक्लास के कार्यान्वयन के बावजूद आपको अपूर्ण परिभाषा चेतावनी मिलती है? मुझे यह नहीं पता था; हमेशा सोचा कि सुपरक्लास में पहले से मौजूद एक विधि घोषित करना अनावश्यक था, चाहे आप इसे ओवरराइड करते हैं या नहीं। –
@ranReloaded यदि आप विशेष रूप से विधि को फिर से घोषित करते हैं तो आपको केवल चेतावनी मिलती है। असल में, जब आप ऐसा करते हैं, तो आप संकलक को बता रहे हैं कि आप विधि को फिर से लागू करने की योजना बना रहे हैं और यह आपको चेतावनी देने के लिए कह रहे हैं कि आपने ऐसा नहीं किया है। –