Подтвердить что ты не робот

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
Делегаты в быстром?

4b9b3361

Ответ 1

Я думаю, что ваш оригинальный селектор (logYes:) верен - это ваша функция, которую нужно переписать. Функции наблюдателей-наблюдателей получают отправленное уведомление в качестве аргумента, поэтому вы должны написать:

func logYes(note: NSNotification) {
    println("Yes")
}