मैं ऑब्जेक्टिव-सी श्रेणियों के संबंध में नियमों की एक जोड़ी के बारे में पता:क्या होता है यदि दो ओबीजेसी श्रेणियां एक ही विधि को ओवरराइड करती हैं?
- श्रेणी तरीकों मौजूदा तरीकों (वर्ग या उदाहरण)
- दो अलग श्रेणियों उसी के लिए एक ही विधि को लागू करने पर हावी नहीं होना चाहिए वर्ग अपरिभाषित व्यवहार में परिणाम होगा
मुझे पता है क्या होता है जब मैं टी में अपने ही वर्ग तरीकों में से एक को ओवरराइड चाहते हैं वह वही श्रेणी है। उदाहरण के लिए:
@interface NSView (MyExtensions)
- (void)foo; // NSView category implementation
@end
@interface MyClass : NSView
{ }
@end
@interface MyClass (MyExtensions)
- (void)foo; // MyClass category implementation
@end
इन इंटरफेस परिभाषित किए जाने के साथ, जब मैं निम्नलिखित कोड चलाता हूं तो कौन सी विधि निष्पादित की जाएगी?
MyClass * instance = [[MyClass alloc] initWith...];
[instance foo];
[instance release];
नोट: मेरी संकलक के साथ, MyClass कार्यान्वयन पूर्वता लेता है, लेकिन मुझे यकीन है कि अगर वह या होने की गारंटी है, बस एक अपरिभाषित व्यवहार के विशिष्ट स्वाद नहीं हूँ।
क्या सुपर क्लास श्रेणी में घोषित और लागू श्रेणी विधि में ओवरराइड करना सही है? – BergP