UITableView的Delegate属性似乎独立于其父类的相同属性" UIScrollView"

时间:2015-11-16 00:38:05

标签: swift uitableview uiscrollviewdelegate

以下是苹果公司文档中UIScrollView的委托属性的描述

UIScrollView: UIView, NSCoding {
  ...
  weak public var delegate: UIScrollViewDelegate?
  ...
}

UITableView的委托属性:

UITableView: UIScrollView, NSCoding {
  ...
  weak public var delegate: UITableViewDelegate?
  ...
}

UITableView继承自UIScrollView。但是委托属性似乎与UIScrollView的属性无关。前面没有override个关键字。它们属于不同的类型,尽管UITableViewDelegate继承自UIScrollViewDelegate。我认为这违反了swift的继承规则。我发现它是在我自己的课上做了一些测试后做的。这是我的测试代码:

public class SomeClassA {
    weak public var delegate: UIScrollViewDelegate?
}

public class SomeClassB: SomeClassA {
  //reporting "property 'delegate' with type 'UITableViewDelegate?' cannot 
  //override a property with type 'UIScrollViewDelegate?'"error
  weak public var delegate: UITableViewDelegate?
}

问题出在哪里?

0 个答案:

没有答案