들어가며

UIImage는 Decodable과 Encodable을 따르지 않습니다. 한 마디로 UIImage는 Codable 프로토콜을 따르지 않기 때문에 에러가 발생하게 됩니다. 데이터 모델 구조를 짤 때 주의해야 할 것 같습니다.

스크린샷 2022-04-19 오전 12.53.42.png

struct SampleDataModel: Codable {
    let image: UIImage      // ⛔️ 에러 발생하는 부분
    let title: String
    let contents: String
    let tag: [Int]
    let createdAt: String
}

해결

지금은 image 단일 객체에 에러가 발생하고 있기 때문에, 아래 2가지 방법 중 적절하게 하나를 택해서 코드를 작성하면 될 것 같습니다.

예시 1

struct SampleDataModel: Codable {
    let image: Data         // ✅ 아예 Data로 받기
    let title: String
    let contents: String
    let tag: [Int]
    let createdAt: String
}

예시 2

struct SampleDataModel: Codable {
    let imageURL: String    // ✅ 이미지의 url로 받기
    let title: String
    let contents: String
    let tag: [Int]
    let createdAt: String
}

레퍼런스

https://velog.io/@sainkr/TIL-2021.02.05

https://iosdeveloperfromscratch.tistory.com/14