我正在尝试传递一个函数以将其作为目标添加到 Swift3 中的 UIButton,但出现以下错误:
Argument of '#selector' does not refer to an '@objc' method, property, or initializer
这是我的代码:
func updateButtonAction(_ action: () -> (), button: UIButton) {
button.addTarget(self, action: #selector(customFunction(action)), for: .touchUpInside)
}
func customFunction(_ function: () -> ()) {
function()
}
我将传入的函数包装在另一个函数中,所以我知道拥有它的类。
我认为问题在于 Objective-C 不支持 Swift 中的第一类函数,并且 selector 关键字仅使用 Objective-C 函数。
有谁知道解决这个问题的方法?