我一直在四处寻找解决办法,但似乎无法自行修复。
我试图通过我的控制器 - 模型发送通知。我在我的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)
}
任何可以帮我修复此错误的人都会?
答案 0 :(得分:2)
选择器的名称应为"naamInModelChangedHandler:"
。请注意:
naamInModelChangedHandler
,因为NSNotification
以NSNotificationCenter.defaultCenter().addObserver(
self,
selector: "naamInModelChangedHandler:",
name: "NAAM_CHANGED",
object: model)
为参数。因此,您应该像这样添加观察者:
PreferencesActivity