我有一个问题NSSelectorFromString和Selector有什么区别
 如果我使用选择器创建选择器

 let bSelector = Selector("registerRemoteNotificationWithApplication:")
 let cSelector = Selector(stringLiteral: "registerRemoteNotificationWithApplication:")


我得到警告


  字符串文字不是有效的Objective-C选择器


和使用NSSelectorFromString时

 let aSelector = NSSelectorFromString("registerRemoteNotificationWithApplication:")


没有警告

即使使用/不使用@objc声明函数

  @objc func registerRemoteNotification(application:UIApplication) {


}

最佳答案

从Swift 3开始,您应该使用#selector()。给定

class Foo: NSObject {
    @objc func registerRemoteNotification(application:UIApplication) { }
}


你会用

let selector = #selector(Foo.registerRemoteNotification(application:))

关于swift - NSSelectorFromString和选择器结构,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51347002/

10-12 05:58