设计模式看起来像这样:
protocol Base {
}
protocol A: Base {
}
protocol B: Base {
}
extension A {
func someFunc() {
if ((self as Any) is any B.Type) { // <- apparently this compiles, but doesn't return True as it's designed in extension A, not the real class that both follows A and B
print("So it also follows protocol B")
}
}
}
class finalClass: A, B {
func anotherFunc() {
someFunc()
}
}
我想检查扩展A的定义,调用该函数的类是否也遵循协议B?
我发布了使用as?
可以工作,但是这里有特定的模式或最佳实践吗?
1条答案
按热度按时间hfwmuf9z1#
你需要定义“不起作用”。其他人看到它的工作和不理解。