如果我有一个枚举如下:
enum TempEnum {
case AAA(name:String, age:Int)
case BBB(country:String)
case CCC
}
我希望能够为每种情况生成每个案例的相关参数的字典。我不想换班!
如果我执行此代码:
let aaa = TempEnum.AAA(name: "bobby", age: 10)
let mirror = Mirror(reflecting: aaa)
var labels = [String]()
var values = [Any]()
for (label, value) in mirror.children {
for (label, value) in Mirror(reflecting: value).children {
labels.append(label!)
values.append(value)
}
}
标签是:[".0", ".1"]
值为:["bobby", 10]
有没有办法检索实际的命名参数(如果确实存在),那么标签是["name", "age"]