0

私は過去 3 ~ 4 時間、このばかげたものにこの列挙型を正しくデコードさせようとしてきましたが、今ではこれに非常に不満を感じています! json次のような API から返される文字列があります。

[
  {
    "contractType": 0
  }
]

THAT を という列挙型にマップしようとしていますContractTypeContractTypeこれは私の列挙型全体です

enum ContractType: Int {
    case scavenger = 0
}

Codableこれは、プロトコルに準拠させようとした私の拡張機能です。

extension ContractType: Codable {
    enum Key: Int, CodingKey {
        case rawValue
    }

    enum CodingError: Error {
        case unknownValue
    }

    init(from decoder: Decoder) throws {
        let container = try decoder.container(keyedBy: Key.self)
        let rawValue = try? container.decode(Int.self, forKey: .rawValue)

        switch rawValue {
        case 0:
            self = .scavenger
        default:
            throw CodingError.unknownValue
        }
    }

    func encode(to encoder: Encoder) throws {
        var container = encoder.container(keyedBy: Key.self)
        switch self {
        case .scavenger:
            try container.encode(0, forKey: .rawValue)
        }
    }
}

私は一体何を間違っているのですか!? どんな助けでも大歓迎です!

4

2 に答える 2