I am trying to perform selector with object in swift 3.0
I have a selector which have one parameter
func imageSelected(aImage : UIImage)
and I am calling it like
viewC.perform(Selector.init("imageSelected:"), with: image, afterDelay: 0.1)
But the app crashes with error that the selector is not defined.
Here's something I always do when I encounter selectors in swift: Ignore the parameters, just use the name.
You used this:
imageSelected:
What is that :
doing there? Delete it! Just use the name of the method!
Also, there is this great #selector
syntactic sugar, please use that:
viewC.perform(#selector(imageSelected), with: image, afterDelay: 0.1)
This is for swift 4.0
perform(#selector(yourMethodHere), with: nil, afterDelay: 1)
Add @objc flag before your function
@objc public func yourMethodHere(){
//your code here
}
It started working well as, I modified the selector being called
from
func imageSelected(aImage : UIImage)
to this
func imageSelected(_ aImage : UIImage)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With