swift enum codable

Published by 연유 on

enum에서 codable을 채택하면 바로 안 되고,

뜨는 상황이 발생한다.

이유는 enum이 rawValue로 String 또는 Int를 채택하지 않아서 그렇다. (json 데이터라고 생각하면 당연한 것 같다.)

별도의 인자가 없는 경우에는 아래와 같이 수동으로(?) 인코딩, 디코딩을 해주면 된다. (사실 그냥, 문제가 없다면 rawValue를 채택하는 게 좋아보인다.)

만약 enum의 case에서 인자를 받았다면 아래의 stackoverflow를 참조하여 codingKey를 이용해서 case 별로 받은 인자를 추가적으로 인코딩, 디코딩해주면 좋을 것 같다. (container(keyedBy: CodingKey.Protocol) 사용.)

https://stackoverflow.com/questions/44580719/how-do-i-make-an-enum-decodable-in-swift-4/44582674

Categories: 미분류