我有一个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)?
这是编译器/框架错误,还是我在这里做错了什么?
答案 0 :(得分:1)
tableView:didSelectRowAtIndexPath:
方法是可选的,因此您必须考虑到这一点。您可以使用可选链接:
self.delegate?.tableView?(tableView, didSelectRowAtIndexPath: indexPath)
或者如果你想强制它被调用(如果你的程序没有实现则有可能导致程序崩溃:
self.delegate?.tableView!(tableView, didSelectRowAtIndexPath: indexPath)