본문 바로가기

개발/Swift

[Swift] Timer 타이머

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