-
Property with type 'Any' does not conforms with codable protocolios 2020. 7. 13. 18:26
원인: 회사 내 프로젝트를 진행하면서 생긴 이슈 사항 입니다. API 구조가 바뀌면서 저 또한 API 응답 받는 데이터 구조를 수정할 필요가 생겼습니다.
먼저 바뀐 서버에서 주는 응답 입니다.
status int 필수
message string 필수
data? optional
앱 내에서 필요한 앱 API는 전부 이런식으로 통일이 되었다고 합니다.
시도: 제가 처음에 생각한 데이터 구조는 이렇게 구조를 바꿨는데 ..."does not conform to protocol 'Decodable'" 이러한 오류가 뜨는 것을 확인했습니다.
문제: Property with type 'Any' does not conforms with codable protocol 이러한 이슈 사항이 생겨서 이렇게 글을 쓰게 되었습니다.
이 오류를 보며 Any는 Codable 프로토콜을 채택하지 않아서 생기는 문제를 짐작하고 구글링을 해본 결과
https://github.com/swagger-api/swagger-codegen/issues/6483
[Swift 4] Property with type 'Any' does not conforms with codable protocol · Issue #6483 · swagger-api/swagger-codegen
Description Current code generator for Swift 4 generates invalid code for JSON dictionaries or properties with object value type. Property generated code: open class TaskParameter: Codable { public...
github.com
저와 비슷한 상황에 놓인 분들의 글들을 읽게 되었습니다.
해결 방법
Any는 Codable을 채택하지 않아서 발생하는 문제이며 , 이를 해결하기 위해서는 Generic을 사용하면 문제를 해결할 수 있다고 합니다.
아래는 제 프로젝트에서 위 문제를 해결하기 위해 사용한 코드들입니다.
이를 사용할 떄는 <T>에 Codable을 채택한 class,struct,enum 객체를 써주면 될 것이다.
'ios' 카테고리의 다른 글
네트워크 통신 모듈화 with Alamofire (0) 2020.07.21 APNs 사용법 (0) 2020.07.20 단위 테스트 (Given, When, Then) 활용 (0) 2020.06.23 UICollectionView: Using Flow Layout (0) 2020.06.21 Label 줄바꿈 속성 (0) 2020.05.11