태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.
Creative Commons License
Creative Commons License
Objective-C를 사용하다보면, Async event를 사용하여 callback 형식으로 객체를 구성하는 경우가 있다.

이 때, selector를 사용하면 간단하게 해결할 수 있다.

예)
[TestSelector.h]
#import <UIKit/UIKit.h>

interface TestSelector : NSObject {
@private
    id rootDelegate;
    SEL noargTask;
    SEL argTask;
}

- (void)SetNoArg:(id) delegate selector:(SEL)selector;
- (void)SetArg:(id) delegate selector:(SEL)selector;
- (void)DoNoArg;
- (void)DoArg : (NSString*)arg1;
@end

[TestSelector.m]
#import "TestSelector.m"

@implementation TestSelector

-(void)SetNoArg:(id) delegate selector:(SEL)selector
{
    rootDelegate = delegate;
    noargTask = selector;
}

-(void)SetArg:(id) delegate selector:(SEL)selector
{
    rootDelegate = delegate;
    argTask = selector;
}

-(void)DoNoArg
{
    if ([rootDelegate respondsToSelector:noArgTask])
        [rootDelegate performSelector:noArgTask];
}

-(void)DoArg:(NSString *)str
{
    if ([rootDelegate respondsToSelector:argTask])
        [rootDelegate performSelector:argTask withObject:str];
}

다른 곳에서 사용할 때,

TestSelector *test = [[TestSelector alloc] init];
[test SetNoArg:self selector:@selector(MyNoArg)];

-(void)MyNoArg
{
}

실행하면 정해진 조건이 될때, MyNoArg가 실행된다.
신고
블로그 이미지

*별빛*

UI/UX관련 개발이슈 및 방법을 나누는 곳입니다. Flex/AIR, Silverlight등 pc 기반 iPhone, Android등 smartphone 기반

티스토리 툴바