본문 바로가기

전체 글

(410)
상세페이지로 넘어가기 (문제 해결, 데이터 전달 방법 비교) 📌 영화 및 TV 상세 정보 페이지를 구현하는 최적의 데이터 전달 방법✅ 컬렉션뷰의 영화 셀을 눌렀을 때, 해당 id를 전달하여 상세 정보를 불러올 예정✅ 영화(Movie)뿐만 아니라 TV(TVShow) 상세 페이지도 동일한 DetailViewController에서 사용해야 함✅ 델리게이트 패턴, configure(), init()을 통한 데이터 전달 방식 중 어떤 것이 가장 적절한지 고민 중  🚀 해결 방법🔹 최적의 선택: init(movieID:) 또는 init(contentID:contentType:) 사용1️⃣ DetailViewController에서 movieID 또는 tvID를 받아야 하므로 초기화(init)에서 직접 전달2️⃣ viewDidLoad()에서 API 요청을 실행하여 데이터를..
에러 발생 - 예상치 못한 데이터 값 발생 📌 에러 분석에러 메시지를 보면 Swift.DecodingError.dataCorrupted가 발생ailed to fetch data: dataCorrupted(Swift.DecodingError.Context( codingPath: [CodingKeys(stringValue: "results", intValue: nil), _CodingKey(stringValue: "Index 10", intValue: 10), CodingKeys(stringValue: "known_for_department", intValue: nil)], debugDescription: "Cannot initialize KnownForDepartment from..
테이블의 섹션 별로 다르게 UI 구성 📌 해결해야 할 문제✅ totalStackView의 arrangedSubviews를 Movie, TV, People에 따라 다르게 구성해야 함✅ Movie, TV일 때 → [genreLabel, releasedDateLabel]✅ People일 때 → [titleLabel] 🚀 해결 방법1️⃣ totalStackView의 arrangedSubviews를 동적으로 변경기존의 totalStackView를 초기화할 때 arrangedSubviews를 미리 지정하지 않음각 configureCollectionView(_:) 호출 시 적절한 뷰를 totalStackView에 추가이전에 추가된 arrangedSubviews를 removeAllArrangedSubviews()로 제거하여 중복 방지 🔧 개선된 코드..
영어 장르 이름을 한글로 표시하기 https://explorer89.tistory.com/321 genre_ids 의 Int 타입의 배열에 맞는 genre 찾기📌 해결해야 할 문제1️⃣ 영화 목록 내 genre_ids의 값을 받아옴{ "page": 1, "results": [ { ... "genre_ids": [ 27, 53 ], ... }, 2️⃣ 장르의 값을 TMDB API를 통해 받아옴{ "genres": [ { "id": 27, "name": "공포" }, ... }, {explorer89.tistory.com ✅ 위의 블로그와 이어진 내용📌 특정 장르 이름을 커스텀 변환하여 한글로 표시하기현재 getTVGenre()에서 가져오는 genre.name이 영어로 반환되는 경우가 있음예를 들어 "Action & Adventure" ..
genre_ids 의 Int 타입의 배열에 맞는 genre 찾기 📌 해결해야 할 문제1️⃣ 영화 목록 내 genre_ids의 값을 받아옴{ "page": 1, "results": [ { ... "genre_ids": [ 27, 53 ], ... }, 2️⃣ 장르의 값을 TMDB API를 통해 받아옴{ "genres": [ { "id": 27, "name": "공포" }, ... }, { "id": 53, "name": "스릴러" } ]} 3️⃣ genre_Ids의 값을 TMDB API를 통해 받아온 genres에서 찾아 name을 반환🔷  27, 53 ➡️ "공포 / 스릴러" 반환  📌 해결해야 할 문제fetchMediaData..
날짜 형식 변환 📌 날짜 형식 변환 (2025-2-11 → 2월 11일 2025년)🔷 TMDB API를 통해 받아오는 데이터 중 released_date의 날자 형식을 변경{ "page": 1, "results": [ { ... "popularity": 396.136, "release_date": "2025-01-15", ... }, ... movie.releaseDate는 "2025-2-11" 형식의 String이므로, 1️⃣ 먼저 Date 타입으로 변환한 후 2️⃣ 원하는 형식으로 다시 String으로 변환  🚀 해결 방법🔹 Step 1: String → Date 변환현재 날짜 형식 "2025-2-11"은 "yyyy-M-d" 형태따라서 DateFormatt..
테이블 섹션 별 데이터 모델 사용 📌 테이블 뷰 안에 컬렉션 뷰를 넣고, 섹션별로 다른 데이터 모델을 사용하는 경우테이블 뷰의 각 섹션에서 서로 다른 API 데이터를 받아와 컬렉션 뷰 셀에 전달해야 한다면, 각 섹션에 맞는 데이터 모델을 관리할 방법이 필요  🚀 해결 방법: Enum + Associated Value 사용🔹 각 섹션에서 다른 데이터 모델을 사용할 때, Enum을 활용하면 쉽게 구분 가능🔹 각 섹션별 데이터를 Enum의 case에 저장하여 switch 문으로 분기 처리// 1. 각 섹션별 데이터 모델 정의struct TrendingMovie { let title: String let posterURL: String}struct PopularTVShow { let name: String let t..
에러 발생 - 데이터 모델 누락 📌 에러 분석error: dataCorrupted(Swift.DecodingError.Context( codingPath: [CodingKeys(stringValue: "results", intValue: nil), _CodingKey(stringValue: "Index 17", intValue: 17), CodingKeys(stringValue: "original_language", intValue: nil)], debugDescription: "Cannot initialize OriginalLanguage from invalid String value pt", underlyingError: nil)) 🔍 에러 메시지 ..