如何使用反射列出符合协议的Swift类型?

mz2*_*mz2 5 reflection swift

一个列表类型如何完全符合基于Swift的类型的协议(即不@objc涉及任何注释)?我希望在Swift标准库中提供允许这样做的反射API。

可以肯定地说,我知道在Objective-C或@objc注释的Swift类的更特殊的情况,它们符合可以用Objective-C运行时API解决的协议:如何列出所有在Swift中符合协议的类?–对于任意的Swift类型(可能是结构,枚举或类),我所追求的都是相同的。

这是我为此目的使用Mirror API的失败尝试:

协议Derpable {
    func derp();
}

扩展名Derpable {
    func derp(){
        print(“ Herp derp。”)
    }
}

枚举E:可变形{}

C级:可变形{}

结构S:可变形{}

print(Mirror(reflecting:Derpable.self).children.count)//打印“ 0 \ n”