[250519] 책 검색&담기 실습

ON&OFF·2025년 5월 19일

iOS TIL

목록 보기
17/18

❓ 겪은 문제점

  • 책 검색&담기 어플을 실습하는 도중에 담기 기능을 구현하는 데에 문제가 발생했다. 책을 담기 버튼으로 저장했는데, 담은 책 탭에 추가한 책이 바로 반영되지 않는 현상이 나타났다. 앱을 종료 후 다시 실행하면 정상적으로 나타났기에 저장 자체는 잘 되는 것 같은데..

    담기를 누르면..

    아무것도 보이지 않는다..

    앱을 재실행하면 저장은 되어있는 것 확인.

‼️ 해결 방법

  • CoreData에 저장은 되었지만, 저장 이후 UI 갱신이 이루어지지 않았던 것이 문제였다.
    담은 책 화면(SavedBookViewController)의 UICollectionView는 화면이 viewWillAppear() 될 때 fetchSavedBooks()를 호출하고 있었는데,
    모달 형식으로 띄운 DetailViewController가 dismiss될 때 이 호출이 보장되지 않으면 책 목록이 갱신되지 않는 것이다.
@objc func putBook() {
    ...
    dismiss(animated: true) {
        self.delegate?.didDismissDetail()
    }
}
  • 또한, dismiss 시점에서 컬렉션뷰를 reload 해주는 코드가 빠져있었던 것도 한몫했다.
func didDismissDetail() {
    fetchSavedBooks()
}

💡 느낀 점

  • 처음에는 CoreData 쪽에 문제가 있나 싶었는데, 문제는 데이터가 아닌 화면 갱신 쪽이었다..!
    데이터 저장과 UI 갱신은 각각의 흐름으로 관리해야 된다는 걸 알게 되었다!
profile
안 되면 될 때까지

0개의 댓글