I'm attempting to pass in a function to add as a target to a UIButton in Swift3, but I'm getting the following error:
Argument of '#selector' does not refer to an '@objc' method, property, or initializer
Here's my code:
func updateButtonAction(_ action: () -> (), button: UIButton) {
button.addTarget(self, action: #selector(customFunction(action)), for: .touchUpInside)
}
func customFunction(_ function: () -> ()) {
function()
}
I'm wrapping a passed in function in another function so I know the class that owns it.
I think the issue is that first class functions in Swift aren't supported in Objective-C and the selector keyword only uses Objective-C functions.
Does anyone know a way around this?