无法从UITableView子类调用UITableViewDelegate tableView(tableView,didSelectRowAtIndexPath:indexPath)

时间:2014-12-21 03:50:45

标签: cocoa-touch swift

我有一个UITableView的子类,可以进行一些自定义触摸处理。我将它从Objective-C移植到Swift。

出于某种原因,我无法调用didSelectRowAtIndexPath委托方法而不会出现以下错误,即使它很乐意为我自动填充它:

Could not find an overload for 'tableView' that accepts the supplied arguments

此示例代码抛出上述错误:

let tableView = UITableView(frame: CGRectZero, style: UITableViewStyle.Plain)
let indexPath = NSIndexPath(index: 1)    
self.delegate?.tableView(tableView, didSelectRowAtIndexPath: indexPath)?

这是编译器/框架错误,还是我在这里做错了什么?

1 个答案:

答案 0 :(得分:1)

tableView:didSelectRowAtIndexPath:方法是可选的,因此您必须考虑到这一点。您可以使用可选链接:

self.delegate?.tableView?(tableView, didSelectRowAtIndexPath: indexPath)

或者如果你想强制它被调用(如果你的程序没有实现则有可能导致程序崩溃:

self.delegate?.tableView!(tableView, didSelectRowAtIndexPath: indexPath)