سؤال

إذا أضفت طريقة فئة إلى فئة، مثل 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
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top