[SWIFT] 스위프트 4 JSON Codable는 - 반환 값은 때때로 객체, 다른 배열입니다
SWIFT스위프트 4 JSON Codable는 - 반환 값은 때때로 객체, 다른 배열입니다
해결법
-
1.당신은 예를 들어 관련 값으로 열거 (문자열이 경우 배열)를 사용하여 결과의 모호성을 캡슐화 있습니다
당신은 예를 들어 관련 값으로 열거 (문자열이 경우 배열)를 사용하여 결과의 모호성을 캡슐화 있습니다
enum MetadataType: Codable { case array([String]) case string(String) init(from decoder: Decoder) throws { let container = try decoder.singleValueContainer() do { self = try .array(container.decode(Array.self)) } catch DecodingError.typeMismatch { do { self = try .string(container.decode(String.self)) } catch DecodingError.typeMismatch { throw DecodingError.typeMismatch(MetadataType.self, DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Encoded payload not of an expected type")) } } } func encode(to encoder: Encoder) throws { var container = encoder.singleValueContainer() switch self { case .array(let array): try container.encode(array) case .string(let string): try container.encode(string) } } } struct Hotel: Codable { let firstFloor: Room struct Room: Codable { var room: MetadataType } }
from https://stackoverflow.com/questions/48739760/swift-4-json-codable-value-returned-is-sometimes-an-object-others-an-array by cc-by-sa and MIT license
'SWIFT' 카테고리의 다른 글
[SWIFT] 루프의 신속한 폐쇄 (0) | 2020.11.06 |
---|---|
[SWIFT] AVAudioPlayer.play ()는 사운드를 재생하지 않습니다 (0) | 2020.11.06 |
[SWIFT] 스위프트 - 재산에 사용자 정의 세터 (0) | 2020.11.06 |
[SWIFT] 스위프트 - 비디오 파일을 압축 (0) | 2020.11.06 |
[SWIFT] Alamofire 화재 변수 유형에는 첨자 회원이 없습니다 (0) | 2020.11.06 |