有没有办法提取CodingKeys枚举大小写的名称?

时间:2019-06-14 14:30:01

标签: swift

我正在尝试访问CodingKeys枚举案例的名称。我唯一可以访问的是它的stringValue。我需要知道名称,因为我将其与Decodable对象中的变量名称进行了比较。有时stringValue和实际名称是不同的。

我知道我可以手动编写一个变量,该变量将返回每种情况的名称...但是它不能扩展,因为它将使模型具有不必要的样板代码量。

这是一个基本示例,其中namestringValue不同。 我需要以某种方式提取name

@objcMembers
class User: Decodable {
    dynamic var name: String = ""

    enum CodingKeys: String, CodingKey {
        case name = "user_name"
    }
}

1 个答案:

答案 0 :(得分:0)

如果您有枚举的实例,则可以将其名称转换为字符串,如下所示:

let myEnum : CodingKeys = .name
let stringRepresentation = "\(myEnum.self)"
print(stringRepresentation) //this will print "name" on the console