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

时间:2016-02-01 08:12:48

标签: swift reflection

如何列出符合基于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"

0 个答案:

没有答案