相关疑难解决方法(0)

如何在Swift中列出符合协议的所有类?

如何列出在Swift中实现给定协议的所有类?

假设我们有一个例子:

protocol Animal {
    func speak()
}

class Cat:Animal {
    func speak() {
        print("meow")
    }
}

class Dog: Animal {
    func speak() {
        print("Av Av!")
    }
}

class Horse: Animal {
    func speak() {
        print("Hurrrr")
    }
}
Run Code Online (Sandbox Code Playgroud)

这是我目前的(不可编译)方法:

func getClassesImplementingProtocol(p: Protocol) -> [AnyClass] {
    let classes = objc_getClassList()
    var ret = [AnyClass]()

    for cls in classes {
        if class_conformsToProtocol(cls, p) {
            ret.append(cls)
        }
    }
    return ret
}

func objc_getClassList() -> [AnyClass] {
    let expectedClassCount = objc_getClassList(nil, 0)
    let allClasses …
Run Code Online (Sandbox Code Playgroud)

reflection ios swift swift2

16
推荐指数
1
解决办法
3458
查看次数

在Swift-3运行时获取所有结构类型的方法?

objc_getClassList结构一样的东西.

只是给出一些上下文:在我们的单元测试中使用这个方法(对于类)来测试具有特定后缀的所有类都有对它们的测试.我们测试测试!

swift swift3

9
推荐指数
1
解决办法
224
查看次数

标签 统计

swift ×2

ios ×1

reflection ×1

swift2 ×1

swift3 ×1