본문 바로가기
TIL

250701 | progressBar가 작동을 안한다 | 해결 방법!

by 23g 2025. 7. 1.

 

 

안녕하세요 벌써 7월이네요

 

 

그럼 오늘의 깨달음(?) 정리 레츠고

 

문제 상황 : 타이머 앱 만들면서 progressBar가 안 움직이는 현상 발생

 

passedTime, totalTime 제대로 선언했는데도 작동이 이상함

var totalTime = 0
//... 중략
guard let totalTime = self.eggTime[title] else { return }

 

여기서 let totalTime을 지역 변수로 다시 선언하고 있었음
그래서 @objc func updateTimer()에서 쓰는 self.totalTime은 그대로 0인 상태로 유지됨
==> passedTime / totalTime은 결국 0으로 나눔 시도하거나 조건 안 맞아서 타이머가 멈춰버림

 

-> 해결 방법

guard let time = self.eggTime[title] else { return }

self.totalTime = time

 

이렇게 클래스 프로퍼티에 직접 할당해주면 됨

 

추가로, progressBar.progress 초기화할 때 1.0 말고 0.0으로 시작해야 자연스럽고,
타이머 invalidate()는 항상 먼저 해주는 게 좋다고 한다.

why?

중복 실행 방지

왜? 입고 그냥 가버리니까

 

❗️ 오늘의 교훈

지역 변수랑 인스턴스 변수 구분 잘하자
타이머 돌리기 전에 초기화 제대로 하자