NSNotification непризнанный селектор, отправленный экземпляру в Swift
Я создал наблюдателя следующим образом, который включает в себя функцию logYes()
:
class SplashPageVC: UIViewController {
func logYes() {
println("Yes");
}
override func viewDidLoad() {
NSNotificationCenter.defaultCenter().addObserver(self, selector: "logYes:", name: "userValid", object: nil)
}
}
Я подключил следующую IBAction к кнопке:
class LoginVC: UIViewController {
@IBAction func loginSubmitted(sender : AnyObject) {
NSNotificationCenter.defaultCenter().postNotificationName("userValid", object: nil)
}
}
Я получаю следующую ошибку, когда я нажимаю кнопку:
[_TtC13Explorer12SplashPageVC self.logYes:]: unrecognized selector sent to instance
Я попробовал кучу разных селекторов, не повезло:
logYes
logYes:
logYes()
logYes():
У меня нет идей. Какие-нибудь идеи? tyvm:)
Литература:
NSNotification не отправляется, когда postNotificationName: вызвано
NSNotificationCenter addObserver в Swift
Делегаты в быстром?
Ответы
Ответ 1
Я думаю, что ваш оригинальный селектор (logYes:
) верен - это ваша функция, которую нужно переписать. Функции наблюдателей-наблюдателей получают отправленное уведомление в качестве аргумента, поэтому вы должны написать:
func logYes(note: NSNotification) {
println("Yes")
}