라벨이 Codable인 게시물 표시

[swift] Codable이 뭔지도 모르는 사름을 위한 글

이미지
Codable Codable 프로토콜 API서버와 통신을 하면서 Codable프로토콜을 채택해서 사용해 보았습니다. JSON의 데이터 구조와 맞아야 하는 것 같다는 느낌만 있어서 어떻게 구성되어있고, 어떻게 사용해야하는지 정리해 놓겠습니다. 먼저 애플의 공식문서 에 들어가서 살펴보겠습니다. Codable is a type alias for the Encodable and Decodable protocols. Encodable과 Decodable을 각각 알아야 하는군요. 그럼 알아보겠습니다. Encodable 내가 가진 데이터를 외부의 데이터 타입으로 인코딩 할 수 있게 해주는 프로토콜 입니다. 아래 코드를 가지고 예를 들어보겠습니다. 데이터를 가지고, json을 만들어 보겠습니다. 데이터를 담을 모델이 필요하겠죠? 간단한 모델을 하나 작성해 줍시다. struct Fruit { var name: String? var color: String? } let banana = Fruit(name: "Banana", color: "Yellow") Fruit 이라는 모델을 하나 만들고, 데이터를 넣어 즙니다. 이 데이터를 어떻게 json의 형태로 Encoding을 할 수 있을 것인가? 최족 목표는 아래와 같은 json을 만들어 주는 것 입니다. 무엇을 넣어주면, json으로 만들어 줄 수 있는 걸까요? /// Encodes the given top-level value and returns its JSON representation. /// /// - parameter value: The value to encode. /// - returns: A new `Data` value containing the encoded JSON data. /// - throws: `EncodingError.invalidValue` if a non-conforming floating