您好,我有一个与条件协议一致性相关的快速问题,下面您可以看到操场上的代码被协议剪断,只能由UIViewControllers实现。对我来说有点棘手,需要将doObj强制转换为UIViewController,我的想法是,由于协议有约束,编译器可以肯定地确定采用它的对象将是UIViewController。
protocol VCProtocol where Self: UIViewController {
func doThis()
}
class DoThisClass: UIViewController, VCProtocol {
func doThis() { }
}
func process(vc: UIViewController) { }
let doObj: VCProtocol = DoThisClass()
process(vc: doObj) // <- Compilator force us to cast to UIViewController
感谢您的时间。