본문 바로가기

교육/Objective-C

[Objective-C] target-Action

1. target-Action

대상을 지정하여 특정 동작을 취하게 설정함

흔히 사용하는 형태는 버튼을 클릭했을때 클릭 함수를 구현하여 동작하게 하는 것

objective-C에서 selector문법이 이에 해당된다.



2. 샘플 코드

@interface Dialog :NSObject

-(void)close;

@end


@implementation Dialog

-(void)close

{

    NSLog(@"Dialog close");

}

@end


@interface Button:NSObject

{

    id target;

    SEL action;

}

-(void) click;

-(void) addTarget:(id)t action:(SEL)a;

@end


@implementation Button

-(void)click

{

    // 자신이 클릭된 상황을 외부에 알림. 객체가 이벤트 발생한다라고 표현

    [target performSelector:action];

}

-(void)addTarget:(id)t action:(SEL)a

{

    target = t;

    action = a;

}

@end


int main()

{

    //Dialog* dlg = [Dialog alloc];

    id n = (id)10;

    NSLog(@"%d",(int)n);

    id dlg = [Dialog alloc]; // void 포인터, 모든 객체의 주소를 담음, 값을 담으려면 casting 필요

    

    Button* btn = [Button alloc];

    [btn addTarget:dlg action:@selector(close)];

    // 사용자가 버튼을 클릭하면 아래 함수가 호출된다고 가정

    [btn click];

    

    [btn release];

    

    [dlg release];

    dlg = nil;

    return 0;

}

'교육 > Objective-C' 카테고리의 다른 글

[Objective-C] 메모리 관리  (0) 2016.07.26
[Objective-C] init  (0) 2016.07.26
[Objective-C] selector  (0) 2016.07.13
[Objectiv-C] method  (0) 2016.07.13
[Obective-C] Class  (0) 2016.07.13