Abid Hussain
Abid Hussain

Reputation: 1549

Swift4: respondstoSelector not working

Following code works perfectly in swift 3.x but not in swift 4.

let selector = "managerDidDetectedStation:"
let observer = <UIViewController subclass object>
let station = <Station Object>

if observer.responds(to: Selector(selector) {         
    observer.perform(Selector(selector), with: station)
}

observer.responds(to: Selector(selector) always returns false. Does anybody aware of any change in this api in swift4?

Upvotes: 5

Views: 4749

Answers (1)

iPatel
iPatel

Reputation: 47049

You need to add @objcMembers at top of observer class

For Ex. if observer is a object of XYZClass class then write

@objcMembers
class XYZClass : NSObject
{
  // Your Stuff
}

OR

Another way is to put @objc to start of your method like below.

 @objc func managerDidDetectedStation...

Upvotes: 12

Related Questions