Как написать трансформер в кодируемом? - PullRequest
0 голосов
/ 14 декабря 2018

Давайте рассмотрим сценарий, в котором я хочу заполнить модель в Codable, как показано ниже.

struct SampleModel: Codable {
    let showId: String
}

Ответ, который мы получаем от сервера, - 'showId: "one".Однако я хочу сохранить его как «Первый» вместо «один».

Есть ли способ сделать с Codable?

1 Ответ

0 голосов
/ 14 декабря 2018

Если я правильно вас понял

struct SampleModel: Codable {
    let showId: String
    enum CodingKeys: String, CodingKey {
        case showId
    }

    init(from decoder: Decoder) throws {

        let container = try decoder.container(keyedBy: CodingKeys.self)

        do {

            let id = try container.decode(String.self, forKey: .showId)
            let stored = id == "one" ? "First" : "default"
            self.init(showId:stored)

        } catch {
            print(error)
            throw error
        }
     }
}
...