Могу ли я установить два строковых значения для CodingKey? - PullRequest
0 голосов
/ 18 января 2019

Что-то вроде:

  enum CodingKeys: String, CodingKey {
    case id = "id" = "some_id"
    case name
    case tags
    case text
  }

Мне это нужно, потому что структуры моей сущности на бэкэнде имеют те же поля, кроме id.

1 Ответ

0 голосов
/ 18 января 2019

Нет, но вы можете сделать что-то вроде хака под капотом вот так:

struct BusinessObject: Codable {

    enum CodingKeys: String, CodingKey {

        case primaryId = "id"
        case alternativeId = "some_id"
    }

    private let primaryId: Int?
    private let alternativeId: Int?

    var id: Int {

        return primaryId ?? alternativeId ?? 0
    }
}
...