2022. 12. 14. 01:33ㆍIOS
Codable protocol
Codable은 인코딩과 디코딩이 합쳐진 Protocol이다. jump to Definition을 살펴보면 다음과 같이 Decodable과 Encodable을 확인할 수 있다. 그렇다면 인코딩과 디코딩에 대해 먼저 알아보자!
Encoding / Decoding
먼저 인코딩은 데이터를 원하는 형태로 암호화하는 것을 의미한다. 많이 사용되는 json을 기준으로 본다면 인코딩은 특정 모델의 값을 json형태로 바꾸어 주는 것을 의미한다. 디코딩은 인코딩의 반대로 암호화 되어 있는 것을 해제시켜 주는 것을 의미한다. json 기준으로 본다면 디코딩은 json형태의 값을 모델 형태로 바꾸어 주는 것을 나타낸다.
decoder.decode
먼저 Decoding을 구현해보자! jsonData 데이터를 User라는 struct 형태로 디코딩을 할 것이다.
Codable Protocol은 struct, enum, class 모두 재택가능하다. 필자는 struct를 사용해 구현해 보았다!
decoder.encode
이제 Encoding을 구현해보자! User 객체를 jsonData 데이터로 인코딩을 할 것이다.
CodingKey
앞서 코드의 예시처럼 디코딩과 인코딩을 하려면 해당 json과 모델의 key값이 동일해야 한다. 만일 동일하지 않은 key가 존재한다면 에러를 반환하게 된다. 하지만 CodingKey를 사용한다면 다른 key값으로도 변환이 가능하다.
해당 코드는 jsondata의 key인 name과 phone을 User struct의 englist_name과 phone_number로 디코딩하였다.
'IOS' 카테고리의 다른 글
[IOS / Swift] viewDidLoad, viewWillAppear (0) | 2022.12.15 |
---|---|
[IOS / Swift] DispatchQueue.main (0) | 2022.12.14 |
[IOS/Swift] NotificationCenter 사용하기 (0) | 2022.12.08 |
[IOS] 데이터저장소 UserDefault (0) | 2022.12.07 |
[IOS] UIDatePicker 사용하기(DateFormatter) (0) | 2022.12.06 |