質問

私は、このようなNSXMLNodeとして、クラスに分類メソッドを追加する場合:

@interface NSXMLNode (mycat)
- (void)myFunc;
@end

このカテゴリーの方法はまた、このようなNSXMLElementやNSXMLDocumentなどNSXMLNodeのサブクラスで使用できますか?それとも私は、コードの重複につながる、各クラスのカテゴリとしてメソッドを定義して実装する必要はありますか?

役に立ちましたか?

解決

これは、サブクラスで利用可能です!

他のヒント

雄二が言ったようです。

これは、サブクラスで利用できるようになります

しかし、あなたはそれがパブリックまたはプライベートのいずれかの方法、と競合することに危険がないよう、あなたの方法の前に付ける必要があります。

すなわち:ます。

-(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