考虑以下从UITableViewController
派生自定义视图控制器的代码段。
class Controller: UITableViewController {
...
)
// MARK: - Table View Data Source
extension Controller {
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
// call super?
...
}
}
// MARK: - Table View Delegate
extension Controller {
override func tableView(tableView: UITableView, willBeginEditingRowAtIndexPath indexPath: NSIndexPath) {
// call super?
...
}
}
您可以覆盖loadView或任何其他超类方法,但如果确实要调用方法的超类实现,通常作为第一个方法调用。
我的问题是,这是否也适用于UITableViewDataSource
符合的协议UITableViewDelegate
和UITableViewController
中的方法?
在数据源方法中调用super
对我来说没有多大意义,因为通常使用这些方法定义自己的内容。但是,我不确定委托方法。例如,在super
中调用willBeginEditingRowAtIndexPath
似乎没有任何明显的效果。
答案 0 :(得分:0)
你是对的,在这种情况下做这件事并没有意义,也不是你应该做的事情。
答案 1 :(得分:0)
在这些情况下无需拨打超级电话。您在原始问题中包含的文档引用是指覆盖超类方法。但是,UITableViewDataSource
和UITableViewDelegate
是协议(而不是您的类'超类),并且您提到的方法特别为您声明,以最适合您的方式实现它们。