用子协议Swift覆盖超类委托

时间:2015-04-19 18:47:40

标签: ios swift types delegates override

这是我对某个类的实现:

public class JABTouchableView {
     public var delegate: JABTouchableViewDelegate?
}

public protocol JABTouchableViewDelegate {
     func someFunction ()
}

现在我正在尝试编写一个子类:

public class JABButton: JABTouchableView {
     override public var delegate: JABButtonDelegate?
}

public protocol JABButtonDelegate: JABTouchableViewDelegate {
     func someNewFunction ()
}

但是我收到错误"属性委托类型为JABButtonDelegate?不能覆盖类型为JABTouchableViewDelegate的属性?"

我以为我做的一切都是正确的,但显然没有。有人可以向我解释这个问题吗?

1 个答案:

答案 0 :(得分:0)

因为无法覆盖具有不同数据类型的变量。