Timer
특정 시간이 지난뒤 어떤 처리를 하거나, 시간에 따른 반복적인 처리를 하고 싶을 때가 있습니다.
예를들어 10초뒤에 어떤일을 수행하고 싶다고 하면
let timer = Timer.scheduledTimer(withTimeInterval: 10, repeats: false) { _ in
print("10초 지났다!")
}
10초간격으로 반복하고 싶다면
let timer = Timer.scheduledTimer(withTimeInterval: 10, repeats: true) { _ in
print("10초 마다 호출됨")
}
이라고 하면 됩니다.
너무 간단하죠
timer를 종료하고 싶을때는 어떻게 하냐
timer 변수를 선언하고, 종료하고 싶을때 invalidate() 를 호출해 주면됩니다.
var timer: Timer?
func timerStart() {
timer = Timer.scheduledTimer(withTimeInterval: 10, repeats: true) { _ in
print("10초 지났다!")
}
}
func timerEnd() {
timer?.invalidate()
timer = nil
}
일시정지 / 재시작 (Pause/Resume)
일시정지(Pause)는 왜 없지? 하실 분들이 있을텐데요(저도 처음에 한참 찾았습니다)
Pause(일시정지)기능은 따로 없기때문에, 종료 처리와 마찬가지로 invalidate()를 하고,
Resume(재시작) 하려면 다시 Timer를 생성해 주셔야 합니다.
결국 위 코드의 timerEnd()와 같은 처리로 일시정지(사실은 타이머를 종료한 것)하고,
timerStart()로 재시작(사실은 타이머 생성)을 하게 되는 것입니다.
여기까지 Timer의 기능을 간략하게 알아보았습니다. 그럼 이만~
'개발 > Swift' 카테고리의 다른 글
[Swift] FSCalendar 달력 라이브러리 (0) | 2022.10.20 |
---|---|
[Swift] UIDatePicker 달력 (1) | 2022.10.19 |