TIL 2024.03.22 PomoHabit App QA중 문제 발생 해결 기록
2024. 3. 22. 19:13ㆍTIL
DuringTime 오전 오후 → 24시간 기준
1. 오류 주간 캘린더 화면 진입시 날짜& 날짜에 대한 습관정보 계속 해서 추가 되는 현상
Device info
테스트를 진행한 하드웨어 종류 및 iOS 버전을 알려주세요
- 디바이스명 : 시뮬레이터
- ios : 16.4
Description
어떤 버그가 생기는지 설명해주세요
- 주간 캘린더 진입시 날짜가 계속 추가 → 습관정보에 대한 데이터도 계속 추가됨
Steps to reproduce
버그 발생 상황을 단계별로 설명해주세요
- 주간날짜를 생성 및 주간날짜에 대한 습관 상태를 viewDidLoad → viewWillAppear로 옮김
- 주간날짜/주간날짜에 대한 습관생태 계속해서 추가되는 현상 발생
해결
private func getWeeklyData() {
var getWeeklyDates : [Date] = []
let calendar = Calendar.current
/*
생략 하였습니다.
*/
for i in 0...6 {
guard let date = calendar.date(byAdding: .day, value: i, to: mondayDate) else { return }
getWeeklyDates.append(date)
}
weeklyDates = getWeeklyDates
}
- 주간 날짜 데이터 생성시 수행되는 함수에 getWeeklyDates 배열을 생성
- getWeeklyDates에 데이터 대입
- getWeeklyDates 배열을 weeklyDates에 대입
함수가 실행될때마다 초기화 되는 getWeeklyDates를 이용해서 중복으로 추가되는 현상 방지
private func getWeeklyHabitState() {
do {
var getWeeklyHabitState: [HabitState] = []
for date in weeklyDates {
let dateHabitState = try CoreDataManager.shared.getSelectedHabitInfo(selectedDate: date).map{$0.hasDone}
let currentDate = Date()
/* 해당 함수에 대한 로직은 변화가없으로 생략하였습니다.
*/
}
weeklyHabitState = getWeeklyHabitState
} catch {
print(error)
}
}
- 주간 날짜 데이터에 대한 습관 생성시 수행되는 함수에 getWeeklyHabitState 배열을 생성
- getWeeklyHabitState에 데이터 대입
- getWeeklyHabitState 배열을 weeklyHabitState에 대입
함수가 실행될때마다 초기화 되는 getWeeklyHabitState를 이용해서 중복으로 추가되는 현상 방지
2. 오늘 습관 완료시 변경 된 변경된 데이터 적용 안되는 현상
Device info
테스트를 진행한 하드웨어 종류 및 iOS 버전을 알려주세요
- 디바이스명 : 시뮬레이터
- iOS 버전: 16.4
Description
어떤 버그가 생기는지 설명해주세요
- 오늘 습관 완료시 주간 캘린더에 습관 완료 표시 적용되지 않는 문제
Steps to reproduce
버그 발생 상황을 단계별로 설명해주세요
- 오늘 습관 완료시 주간캘린더에 변경사항 적용이 되지않음
Screenshots
버그가 발생한 화면명을 알려주세요
- WeeklyCalendarView
문제점 및 수정사항
문제점 발견 : viewDidLoad에 데이터를 받아오기 때문에 한번 실행되면 다시 실행되지 않는다.
해결 방법
- 데이터를 불러오고 View를 설정하는 함수 viewDidLoad → viewWillAppear로 이동
override func viewDidLoad() {
super.viewDidLoad()
getWeeklyData()
setWeeklyCalendView()
getTargetHabit()
getWeeklyHabitState()
setWeeklyHabiState()
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
getWeeklyData()
setWeeklyCalendView()
getTargetHabit()
getWeeklyHabitState()
setWeeklyHabiState()
}
- 주간 캘린더 주간 습관 진행 상태를 나타내는 weeklyHabitState 배열 변경 생기면 주간 캘린더 weeklyCollectionView를 reload
var weeklyHabitState: [HabitState] = [] {
didSet {
weeklyCollectionView.reloadData()
}
}
'TIL' 카테고리의 다른 글
[TIL] 2024.02.26 (2) | 2024.02.26 |
---|