NSSelectorFromString и 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) {
}
1 ответ
Начиная с Swift 3, вы должны использовать #selector()
за это. Дано
class Foo: NSObject {
@objc func registerRemoteNotification(application:UIApplication) { }
}
вы бы использовали
let selector = #selector(Foo.registerRemoteNotification(application:))