【发布时间】:2020-11-03 10:26:48
【问题描述】:
我似乎无法写下字符串的标签。
我有一个带有关联值的枚举,如下所示:
public enum HTTPMethod {
case get
case post(body: [String: Any])
case put
case delete
case patch
}
我可以打印值
let get = HTTPMethod.get
print (get) // get
但我真正想要的是大写形式的枚举名称。
即得到将是 GET
我正在尝试为此编写一个扩展:
extension HTTPMethod: CustomStringConvertible {
public var description: String {
return String(describing: self)
}
}
也不行
extension HTTPMethod: CustomStringConvertible {
public var description: String {
return String(describing: self)
}
}
带有反射的版本在我的实现中也不起作用:
extension HTTPMethod: CustomStringConvertible {
public var description: String {
let mirror = Mirror(reflecting: self)
return (mirror.children.first?.label)!
}
}
那么怎么写枚举的大写标签呢?
【问题讨论】: