NSSelectorFromString and Selector Struct



我有一个问题NSSelectorFromString和Selector之间有什么不同如果我使用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:))

最新更新