iOS NSTimer 사용하기
NSTimer 사용하기
프로그래밍을 하다 보면 특정 작업이 몇초, 몇분, 몇시간 후에 실행되는 로직을 원할 때가 있습니다. 이런 경우에 dispatch_after
를 사용해서 처리할 수도 있지만, 또 다른 방법으로는 NSTimer
를 이용하면 편리하게 구현할 수 있습니다.
// dispatch_after 사용하는 경우
dispatch_time_t waitTime = dispatch_time(DISPATCH_TIME_NOW, CALL_INTERVAL * NSEC_PER_SEC);
dispatch_after(waitTime, dispatch_get_global_queue( DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^(void) {
});
dispatch_after
의 경우 NSDictionary
형태의 데이터를 넘길 수 없는데 NSTimer
는 Dictionary
형태의 데이터를 전달할 수 있습니다. 그러면 NSTimer
를 사용하는 방법에 대해 알아보도록 하겠습니다.
NSDictionary *userInfo = @{@"USER_NAME":@"Leby.Y.Kim"};
NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:5
target:self
selector:@selector(timerHandler:)
userInfo:userInfo
repeats:NO]; //5초
위 방법처럼 작성하면 NSTimer
를 등록하고 메서드가 실행이 됩니다. 설명은 아래와 같습니다.
Interval:5 // 5초 뒤에 실행
target:self // 현재 클래스
selector:@selector(timerHandler:) // 5초 뒤 실행되는 메서드
userInfo:userInfo // 전달할 Dictionary 데이터
repeats:NO // 반복 여부
타이머의 의해 실행되는 메서드 구현
-(void)timerHandler:(NSTimer*)timer
{
NSDictionary *userInfo = (NSDictionary*)timer.userInfo;
NSString *value = [userInfo objectForKey:@"USER_NAME"];
NSLog(@"value: %@", value);
[timer invalidate];
}
timerHandler
메서드에는 userInfo
로 받은 Dictionary
데이터를 KEY값을 이용해서 가져와 출력합니다.
[timer invalidate];
타이머가 계속 메모리에 남아있으면 안되니 타이머를 종료하는 메서드입니다.
'Backup > iOS' 카테고리의 다른 글
Xcode 빌드 시간 표시 명령어 (0) | 2018.07.03 |
---|---|
iOS Swipe Gesture 정리 (0) | 2018.07.02 |
Cocoapods에 직접 만든 Library 등록 하는 방법 (0) | 2018.07.01 |
로컬 프로젝트에 직접 만든 Pod 생성 및 적용하기 (0) | 2018.07.01 |
프로젝트 prefix .pch 파일 설정 (0) | 2018.06.28 |
댓글
이 글 공유하기
다른 글
-
Xcode 빌드 시간 표시 명령어
Xcode 빌드 시간 표시 명령어
2018.07.03 -
iOS Swipe Gesture 정리
iOS Swipe Gesture 정리
2018.07.02 -
Cocoapods에 직접 만든 Library 등록 하는 방법
Cocoapods에 직접 만든 Library 등록 하는 방법
2018.07.01 -
로컬 프로젝트에 직접 만든 Pod 생성 및 적용하기
로컬 프로젝트에 직접 만든 Pod 생성 및 적용하기
2018.07.01