문제 1: RxSwift로 데이터 업데이트가 반영되지 않음
문제 상황: BehaviorRelay에 새로운 데이터를 추가해도 화면에 반영되지 않음.
원인 분석: BehaviorRelay는 새로운 값을 accept해야 변경 사항을 감지.
해결 방법:
let updatedList = currentList + newData
relay.accept(updatedList)
문제 2: 무한 스크롤 로직에서 중복 호출 발생
문제 상황: 스크롤 이벤트를 감지할 때마다 여러 번 API 호출이 발생.
원인 분석: RxSwift에서 스크롤 이벤트를 제한 없이 구독.
해결 방법: throttle 연산자를 사용해 호출 빈도를 제한.
scrollView.rx.contentOffset
.throttle(.milliseconds(300), scheduler: MainScheduler.instance)
.subscribe { _ in
// Fetch data
}
문제 3: 포켓몬 이름 번역이 되지 않음
문제 상황: 일부 포켓몬 이름이 번역되지 않고 영어 그대로 표시.
원인 분석: PokemonTranslator에 없는 이름이 있을 때 기본값 처리 누락.
해결 방법:
기본값을 제공해 영어 이름을 그대로 반환.
static func getKoreanName(for englishName: String) -> String {
return koreanNames[englishName.lowercased()] ?? englishName
}