协议条件符合性以及为什么需要强制转换

时间:2018-11-26 09:46:25

标签: ios swift

您好,我有一个与条件协议一致性相关的快速问题,下面您可以看到操场上的代码被协议剪断,只能由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

感谢您的时间。

0 个答案:

没有答案