我有一个问题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/