我正在写一个可以序列化枚举和其他Swift类型(字符串,对象等)的序列化程序。所以我需要检查传递到我的序列化程序中的Any参数是否为Enum或其他。看来在Swift中做到这一点的唯一方法是使用反射。下面的代码看起来合理还是有更好的方法来检查Enum类型?
enum Things {
case Thing1
case Thing2
}
let something:Any = Things.Thing1
let mirror = Mirror(reflecting: something)
if (mirror.displayStyle == .Enum) {
print("Reflected type is Enum") // works
}
Run Code Online (Sandbox Code Playgroud)