سؤال
إذا أضفت طريقة فئة إلى فئة، مثل NSXMLNode:
@interface NSXMLNode (mycat)
- (void)myFunc;
@end
هل ستتوفر طريقة الفئة هذه أيضا في الفئات الفرعية من NSXMLNode، مثل NSXLELELELELELELELEMENT و NSXMLDocument؟ أو هل يجب علي تحديد وتنفيذ الطريقة كفئة في كل فئة، مما يؤدي إلى تكرار الكود؟
المحلول
انها متوفرة في الفئات الفرعية!
نصائح أخرى
سيكون متاحا في الفئات الفرعية كما قال Yuji.
ومع ذلك، يجب عليك بادئة أسلوبك بحيث لا يوجد خطر تعزز مع أي طريقة أو عامة أو خاصة.
بمعنى آخر:
-(void) mycat_myMethod;
نعم ستكون متاحة، رغم التحقق من ذلك بواسطة الرمز وهنا هو:
#import <Foundation/Foundation.h>
@interface Cat1 : NSObject {
}
@end
@implementation Cat1
- (void) simpleMethod
{
NSLog(@"Simple Method");
}
@end
@interface Cat1 (Cat2)
- (void) addingMoreMethods;
@end
@implementation Cat1 (Cat2)
- (void) addingMoreMethods
{
NSLog(@"Another Method");
}
@end
@interface MYClass : Cat1
@end
@implementation MYClass
@end
int main (int argc, const char * argv[]) {
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
MYClass *myclass = [[MYClass alloc] init];
[myclass addingMoreMethods];
[myclass release];
[pool drain];
return 0;
}
الإخراج هو:
Another Method
لا تنتمي إلى StackOverflow