次のように、NSString クラスに 2 つのカテゴリがあります。
//最初のカテゴリ
#import "NSString+MyCategory1.h"
@implementation NSString (MyCategory1)
-(void)myMethod{
NSLog(@"this is my method from category 1");
}
@end
// 2 番目のカテゴリ
#import "NSString+MyCategory2.h"
@implementation NSString (MyCategory2)
-(void)myMethod{
NSLog(@"this is my method from category 2");
}
@end
ただし、次の main メソッドは、同じもののインポートがコメントアウトされた後でもmyMethod
常に呼び出しています。MyCategory1
#import <Foundation/Foundation.h>
//#import "NSString+MyCategory1.h"
#import "NSString+MyCategory2.h"
int main(int argc, const char * argv[])
{
@autoreleasepool {
[[[NSString alloc]init] myMethod];
}
return 0;
}
この動作と、この動作が実際にどのように役立つかを誰かに説明してください。