不匹配函数头

时间:2017-01-08 18:57:50

标签: swift swift3

 submitButton.addTarget(self, action: (self.submitButtonDown(_: , completion:  )), for: .touchUpInside)

结果为Expected expression in list of expressions

功能是

func submitButtonDown(_ sender: AnyObject?, completion: (Bool) -> Void) {

我应该在内部包含封闭物吗?

1 个答案:

答案 0 :(得分:0)

addTarget方法要求选择器(不是块或函数引用),因此您不能按照尝试的方式使用它。

触发按钮点击回调的最简单方法是将回调块分配给实例变量,并从标准按钮点击处理程序调用该变量。

var onTapCallback: ((success: Bool) -> Void)?

func submitButtonDown(_ sender: AnyObject?) {
    self.onTapCallback?(true)
}