[Objective-C] 함수 포인터 사용하기
C/C++에서 종종 사용되는 함수 포인터를
Object-C에서는 어떻게 구현해야 하는가에 대한 샘플 코드이다.
// .h --------------------------------
@interface .. {
NSDictionary* funcMap_;
}
- (void)add;
- (void)subtract;
- (void)multiply;
- (void)divide;
// .m --------------------------------
- (id)init
{
...
NSArray* fps = [NSArray arrayWithObjects:
[NSValue valueWithPointer:@selector(add)],
[NSValue valueWithPointer:@selector(subtract)],
[NSValue valueWithPointer:@selector(multiply)],
[NSValue valueWithPointer:@selector(divide)], nil];
NSArray* keys = [NSArray arrayWithObjects:@"a", @"s", @"m", @"d", nil];
funcMap_ = [[NSDictionary alloc] initWithObjects:fps forKeys:keys];
...
}
- (void)click:(NSString*)command
{
NSValue* value = [funcMap_ objectForKey:command];
if (value) {
SEL fp = [value pointerValue];
[self performSelector:fp];
}
}'tip & sample > ios' 카테고리의 다른 글
[Objective-C] sscanf를 대신하는 방법 (0) | 2012.01.18 |
---|---|
[iOS] "Status Bar"를 숨기는 세가지 방법 (0) | 2011.09.08 |
[iOS] UIInterfaceOrientation 알아내기 (0) | 2011.04.29 |