有没有一种方法可以获得扩展我的协议(protocol)的 Class 类型或 Struct 类型?
这是我的示例代码:
protocol a {}
extension a {
static func list(completion: ([StructType] -> Void)) {
var items = [StructType]()
...
completion(items)
}
}
struct b{}
extension b: a {}
struct c{}
extension c: a{}
在这种情况下,我想动态获取结构a 和b 的类型,以便我可以生成它的列表并返回。
预先感谢您友好地回答我的问题。
最佳答案
使用Self
关键字
protocol P {
init()
}
extension P {
static func list(completion: ([Self]) -> Void) {
let items = [Self(), Self(), Self()]
print(Self.self)
completion(items)
}
}
struct B {}
extension B: P {}
class C {
required init() {}
}
extension C: P {}
B.list{ print($0) }
C.list{ print($0) }
关于Swift - 如何获取从协议(protocol)扩展的类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42621685/