본문 바로가기

iOS Programming

NSTimer를 이용한 타이머 호출

매 일정 시간마다 특정 루틴이 실행되게 하고 싶을 때 타이머를 주로 이용합니다.
코코아 프로그래밍에서 타이머를 이용하는 방법은 아래와 같습니다.

1. 타이머에 의해 호출될 인스턴스 메소드를 작성합니다.
2. 타이머를 생성합니다.
3. 생성된 타이머를 RunLoop에 등록합니다.

자 그럼 샘플코드로 살펴볼까요?

 
@interface MainView : UIView {
@private
    NSTimer*    _timer;                                                // 타이머 클래스 변수 선언
}

- (void)timerFireMethod:(NSTimer*)theTimer;               // 타이머에 의해 호출될 메소드 선언

@end



 
@implementation MainView

- (id)initWithCoder:(NSCoder *)coder {
    if (self = [super initWithCoder:coder]) {
        _timer = [NSTimer    timerWithTimeInterval:0.5 target:self selector:@selector(timerFireMethod:)
                                      userInfo:nil repeats:YES];
        NSRunLoop *runLoop = [NSRunLoop currentRunLoop];
        [runLoop addTimer:_timer forMode:NSDefaultRunLoopMode];
    }
    return self;
}

- (void)timerFireMethod:(NSTimer*)theTimer {
    NSLog(@"타이머가 호출되었습니다.");
}


자세한 파라미터 설명은 도움말 참고하시고
타이머 호출을 해제하기 위해서는 invalidate 메소드를 호출하면 됩니다.