안녕하세요 벌써 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?
중복 실행 방지
❗️ 오늘의 교훈
지역 변수랑 인스턴스 변수 구분 잘하자
타이머 돌리기 전에 초기화 제대로 하자
'TIL' 카테고리의 다른 글
250807 | 마커 등록 화면 UI 구성 (FlexLayout + NMFMapView + 태그 영역 레이아웃 작업) (0) | 2025.08.07 |
---|---|
250713 TIL | MVC 패턴으로 구조 바꾸기 (1) | 2025.07.13 |
250622 TIL | 기능 구현 팁, switch / enum, 초기화, 패턴 등 (0) | 2025.06.22 |
250615 TIL | 사이판에서 돌아왔아요 (0) | 2025.06.15 |
250529 TIL | 코드로 Navigationcontroller 구현하기 (3) | 2025.05.29 |