'performSelector'에 해당되는 글 1건

  1. 2010.06.22 Objective-C에서 SEL,@seletor,performSelector 예
오브젝트C2010. 6. 22. 09:48
Objective-C에서 SEL,@seletor,performSelector 예


지난주 스터디에서 공부한것중 SEL,@seletor,performSelector  사용예를 만들어 보았습니다.

SEL과 SELECTOR 는 C의 함수 포인터와 유사하다.

SEL은 VOID * 와 유사하지만 함수주소를 참조하는 데이타 형이고 SELECT는 메소드를 SEL

TYPE으로 반환해준다. 다음은 SEL 로 method 라는 변수에 Test Class의 A_method와 B_methid를 정의하고 selector 지시자를 사용하여 SEL 타입 method 를 동일한 이름으로 다른 method를 CALL 하는 예제이다.



/*

 Objective C Program 

 selector example

*/


#import <Foundation/Foundation.h>


@interface Test:NSObject

-(void)A_method;

-(void)B_method;

@end


@implementation Test

-(void) A_method

{

NSLog(@"select A_method test !!");

}


-(void) B_method

{

NSLog(@"select B_method  test !!");

}

@end




int main(int argc, constchar *argv[])

{


        id  obj;

        SEL method; // 함수의포인터로



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

   

        obj = [[Test alloc] init];


        method = @selector(A_method);

        [obj performSelector:method];


        method = @selector(B_method);

        [obj performSelector:method];


        [obj release]; 

         


[pool drain];


return0;


}

SEL,@seletor,performSelector 세가지를 조합하여 method를 사용한다는 의미이다.

다음은 MAC OSX 에서 터미날 창에서 컴파일한 결과 이다.

컴파일 하여 실행하면 다음과 같은 결과 나온다.

Posted by 오늘마감

댓글을 달아 주세요