プログラマメモ2 - programmer no memo2

文字列からセレクターを作成する - NSSelectorFromString 2010/08/28

Objective-Cです。NSSelectorFromStringです。
文字列からセレクターを作成できます。

いろいろな生成ルーチンをランダムに呼ぶにはどうしようかなーと考えていて、ひとつの案として文字列からセレクタを作成して、
呼び出すという方法が浮かびました。

参考



以下コード
#import <Foundation/NSArray.h>
#import <Foundation/NSObject.h>
#import <Foundation/NSString.h>
#import <Foundation/NSAutoreleasePool.h>

@interface MyObj : NSObject {

}
- a1;
- a2;
- a3;
@end

@implementation MyObj

- a1
{
NSLog(@"** a1");
}
- a2
{
NSLog(@"** a2");
}
- a3
{
NSLog(@"** a3");
}
@end

int main(){

NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];

id myObj = [MyObj alloc];

// NSSelectorFromStringを使ってるよ
SEL sel1 = NSSelectorFromString(@"a1");

// performSelectorを使ってるよ
[myObj performSelector:sel1];
[myObj performSelector:NSSelectorFromString(@"a2")];
[myObj performSelector:NSSelectorFromString(@"a3")];

[pool drain];
return 0;
}

: