如何列出符合基于Swift的纯类型协议的类型(即不涉及@objc
注释)?我希望在Swift标准库中提供允许这样做的反射API。
为了更加确定,我知道Objective-C或@objc带注释的Swift类更专业的情况符合可用Objective-C运行时API解决的协议:How to list all classes conforming to protocol in Swift? - 我所追求的是对于任意Swift类型都可以是结构,枚举或类。
以下是我尝试使用Mirror API的失败尝试:
protocol Derpable { func derp(); } extension Derpable { func derp() { print("Herp derp.") } } enum E: Derpable { } class C: Derpable { } struct S: Derpable { } print(Mirror(reflecting: Derpable.self).children.count) // prints "0\n"