我现在正在使用Swift学习一些P.O.P(面向协议的编程)。我已经创建了带扩展名的协议:
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
的扩展名,不应该吗?
答案 0 :(得分:2)
这是一个简单的拼写错误:
func dispayActivityIndicator() {
你放弃了" l"在"显示"。
但你应该得到一个更具体的警告:
note: protocol requires function 'displayActivityIndicator()' with type '() -> ()'
如果您不这样做,则可能表示您还有其他错误。