繁体   English   中英

具有约束的Swift协议扩展不会使类符合该协议

[英]Swift protocol extension with constraint won't make class to conform that protocol

我现在正在使用Swift学习一些POP(面向协议的编程)。 我创建了带有扩展名的协议:

protocol ActivityIndicable {
    func displayActivityIndicator()
    func hideActivityIndicator()
}

extension ActivityIndicable where Self: UIViewController {
    func dispayActivityIndicator() {
        //display
    }

    func hideActivityIndicator() {
        //hide
    }
}

现在我有一些视图控制器,可以说MyViewController:

class MyViewController: UIViewController, ActivityIndicable {
}

在编译过程中,我得到警告,说MyViewController不符合协议ActivityIndicable 你能解释为什么吗? 它应该“使用”受UIViewController限制的扩展,不是吗?

这是一个简单的错字:

func dispayActivityIndicator() {

您将“ l”放在“显示”中。

但是您应该得到一个更具体的警告:

note: protocol requires function 'displayActivityIndicator()' with type '() -> ()'

如果不是,那可能表明您还有其他错误。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM