使用Notifications将未识别的选择器发送到ViewController中的实例

时间:2015-05-17 15:06:53

标签: ios swift unrecognized-selector

我一直在四处寻找解决办法,但似乎无法自行修复。

我试图通过我的控制器 - 模型发送通知。我在我的appdelegate上收到错误说:

  

[Test.ViewController naamInModelChangedHandler]:无法识别的选择器   发送到实例0x7f81c85006c0

我在我的viewDidLoad中发送通知,如下所示:

        NSNotificationCenter.defaultCenter().addObserver(
        self,
        selector: "naamInModelChangedHandler",
        name: "NAAM_CHANGED",
        object: model)

在我的ViewController中,我创建了一个这样的函数:

    func naamInModelChangedHandler ( notification:NSNotification ) {
    println("De naam in de model is veranderd naar \(model.naam!)")
            NSNotificationCenter.defaultCenter().removeObserver(
                self,
                name: "NAAM_CHANGED",
                object: model)
}

这就是我的模型的样子(但我不认为这与它有什么关系?:

var naam: String? {
didSet {
    NSNotificationCenter.defaultCenter().postNotificationName("NAAM_CHANGED", object: self)
}

任何可以帮我修复此错误的人都会?

1 个答案:

答案 0 :(得分:2)

选择器的名称应为"naamInModelChangedHandler:"。请注意: naamInModelChangedHandler,因为NSNotificationNSNotificationCenter.defaultCenter().addObserver( self, selector: "naamInModelChangedHandler:", name: "NAAM_CHANGED", object: model) 为参数。因此,您应该像这样添加观察者:

PreferencesActivity