Codable = Encodable + Decodable
Encodable은 data를 Encoder에서 변환해주려는 프로토콜로 바꿔주는 것
Decodable은 data를 원하는 모델로 Decode 해주는 것
Codable은 프로토콜이라서 Struct, enum, class 전부 채택 가능하다.
struct User: Codable {
enum CodingKeys: String,CodingKey {
case id
case name
case birth
case phoneNum = "phone_num"
}
let id: Int
let name: String
let birth: String
let phoneNum: String
}
Enum CodingKeys
CodingKeys는 json Key에서 사용하는 이름이 아닌 내가 원하는 이름으로 사용할 수 있게 하는 프로토콜이다.
위 예제에서 json에 실제로 사용하는 값들은 id, name, birth, phone_num이지만 내가 지정한 이름은 id, name birth, phoneNum이다.
※ 참고
'iOS > Swift 상식' 카테고리의 다른 글
Swift에서 타입 안전성(type safety)은 어떤 방식으로 보장되나요? (0) | 2023.07.23 |
---|---|
Optional Chaining과 nil-coalescing operator(??)의 차이점과 사용 시 주의사항은 무엇인가요? (0) | 2023.06.26 |
Result Type (0) | 2023.03.25 |
Some (0) | 2023.03.25 |
property wrapper (0) | 2023.03.10 |