func startTimer(for state: TimerState, duration: Int) {
let startTime = Date()
self.timerTick?("\(String(format: "%02d", duration / 60)) : \(String(format: "%02d", duration % 60))")
timer.invalidate()
timer = Timer.scheduledTimer(withTimeInterval: 1, repeats: true) { [weak self] timer in ...
...
...
timer
객체가 invalidate()
메소드로 인해 작동이 정지될 때, 입력받은 duration(입력받은 운동시간, 쉬는시간 등의 값)
을 사용해서 타이머 라벨을 표시하게 했습니다.DispatchQueue.main.async {
self.timerTick?("\(String(format: "%02d", remainMin)) : \(String(format: "%02d", remainSec))")
}
DispatchQueue.global(qos: .userInteractive).async {
self.playSound?("CoachReadySound")
}
qos: .UserInteractive
의 qos값을 갖는 스레드에서 비동기로 작동하게 만들었습니다.
멋쪄용