现在我需要一种方便的方法来获取枚举本身的名称?这是一个例子。
enum SimpleEnum {
case firstCase
case secondCase
case thirdCase
}
let simpleEnum: SimpleEnum = .firstCase
print("\(simpleEnum)") // return the "firstCase", but I want "SimpleEnum"
我知道以下代码可以使用。
enum SimpleEnum: CustomStringConvertible {
case firstCase
case secondCase
case thirdCase
var description: String { return "SimpleEnum" }
}
let simpleEnum: SimpleEnum = .firstCase
print("\(simpleEnum)") // Ok, it return "SimpleEnum"
但是,我只想要一种通用的方式而不是输入" SimpleEnum"每个枚举。
答案 0 :(得分:7)
您可以通过调用type(of:)
从枚举案例中获取类型对象。然后,您可以通过调用String.init(describing:)
:
let simpleEnum: SimpleEnum = .firstCase
let enumName = String(describing: type(of: simpleEnum))
如果您想从类型中获取类型名称,可以执行以下操作:
let enumName = String(describing: SimpleEnum.self)