我可以使用带有Codable的枚举吗?

时间:2019-03-20 19:48:40

标签: ios swift codable

我创建了一个枚举

enum FeedItemType: String {
    case selling = "SELLING"
    case news = "USER_NEWS"
}

该字符串与我的JSON响应中返回的type属性匹配。

使用创建的结构时,我希望能够在代码的其他地方使用枚举值。这可能吗?

我正在尝试类似的事情

struct FeedItem: Codable, Equatable {
    var type: FeedItemType

    private enum CodingKeys: String, CodingKey {
        case type
    }

    init(from decoder: Decoder) throws {
        let container = try decoder.container(keyedBy: CodingKeys.self)
        self.type = try container.decode(FeedItemType.self, forKey: .type)
    }
}

但是我收到了很多错误

  

没有“解码”候选词产生预期的上下文结果类型   'FeedItemType'

     

类型“ FeedItem”不符合协议“可编码”

0 个答案:

没有答案