这个问题已经有了答案:
How do you find out the type of an object (in Swift)?
11个答案
现在我需要一个方便的方法来获取枚举本身的名称?这是一个例子。

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"

但是,我只想要一个通用的方法,而不是为每个枚举键入“simplenum”。

最佳答案

您可以通过调用type(of:)从枚举实例中获取type对象。然后可以通过调用String.init(describing:)将其转换为字符串:

let simpleEnum: SimpleEnum = .firstCase
let enumName = String(describing: type(of: simpleEnum))

如果要从类型中获取类型名,可以执行以下操作:
let enumName = String(describing: SimpleEnum.self)

10-07 18:13