Objective-C Language
NSTimer
수색…
타이머 만들기
이렇게하면 5.0
초 안에 self
에서 doSomething
메소드를 호출하는 타이머가 작성됩니다.
[NSTimer scheduledTimerWithTimeInterval:5.0
target:self
selector:@selector(doSomething)
userInfo:nil
repeats:NO];
repeats
매개 변수를 false/NO
로 설정하면 타이머가 한 번만 실행되기를 원합니다. true/YES
설정하면 수동으로 무효화 될 때까지 5 초마다 실행됩니다.
타이머 무효화
[timer invalidate];
timer = nil;
타이머가 작동을 멈 춥니 다. 타이머가 작성된 스레드에서 호출되어야합니다. Apple 노트를 참조하십시오.
이 메시지는 타이머가 설치된 스레드에서 보내야합니다. 다른 스레드에서이 메시지를 보내면 타이머와 관련된 입력 소스가 실행 루프에서 제거되지 않아서 스레드가 올바르게 종료되지 않을 수 있습니다.
nil
을 설정하면 실행 여부를 확인하는 데 도움이됩니다.
if(timer) {
[timer invalidate];
timer = nil;
}
//Now set a timer again.
수동으로 타이머 실행
[timer fire];
fire
메서드를 호출하면 NSTimer가 일반적으로 일정에서 수행했던 작업을 수행합니다.
반복하지 않는 타이머 에서는 타이머 가 자동으로 무효화됩니다. 즉 호출이다 fire
시간 간격이 하나의 호출이 발생할 것까지 전에.
반복 타이머 에서 이것은 보통 일정을 방해하지 않고 단순히 조치를 호출합니다.
타이머에 정보 저장
타이머를 만들 때 timer로 호출하는 함수에 전달할 정보를 포함하도록 userInfo
매개 변수를 설정할 수 있습니다.
함수에서 타이머를 매개 변수로 사용하면 userInfo
속성에 액세스 할 수 있습니다.
NSDictionary *dictionary = @{
@"Message" : @"Hello, world!"
}; //this dictionary contains a message
[NSTimer scheduledTimerWithTimeInterval:5.0
target:self
selector:@selector(doSomething)
userInfo:dictionary
repeats:NO]; //the timer contains the dictionary and later calls the function
...
- (void) doSomething:(NSTimer*)timer{
//the function retrieves the message from the timer
NSLog("%@", timer.userInfo["Message"]);
}
Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow