Codable은 JSON 객체 등에서 자동으로 Swift의 객체로 바꾸어 줄 수 있도록 해주는 Protocol입니다. 보통은 json을 통해서 해당 객체를 init하려고 채택하는 Protocol이기 때문에 property 초기값이 없이 let을 통해서 선언하는 편인데요. 어떤 이유로 초기값이 필요한 경우도 있습니다. 그 때 property를 어떻게 선언하는지 알아봅니다.
아래 캡쳐에서 보시는 것처럼 let을 이용해서 선언하는 경우에는 warning이 뜨는데요. 내용은 보면 이렇습니다. “불변의 property는 디코드 되지 않을 것입니다. 왜냐하면 덮어 쓸 수 없는 초기값으로 선언되었기 때문입니다.”
Decode를 할 때 초기값이 있는 경우 이미 그 초기값으로 property를 선언하고 그 property를 다시 덮어쓴 방식으로 디코딩하는 것으로 생각됩니다. 따라서 아래와 같은 에러가 뜨는 것이죠.
따라서 굳이 let을 쓰고자 한다면 초기값을 제거하면 되고 초기값이 꼭 필요하다면 var로 선언해야 합니다.