使用通知将无法识别的选择器发送到 ViewController 中的实例
unrecognized selector sent to instance in ViewController using Notifications
我一直在四处寻找修复方法,但似乎无法自行修复。
我正在尝试通过我的控制器 - 模型发送通知。我在我的 appdelegate 上收到一条错误消息:
[Test.ViewController naamInModelChangedHandler]: unrecognized selector
sent to instance 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)
}
谁能帮我解决这个错误?
选择器的名称应为"naamInModelChangedHandler:"
。注意 :
因为 naamInModelChangedHandler
接受一个 NSNotification
作为参数。因此,您应该像这样添加观察者:
NSNotificationCenter.defaultCenter().addObserver(
self,
selector: "naamInModelChangedHandler:",
name: "NAAM_CHANGED",
object: model)
我一直在四处寻找修复方法,但似乎无法自行修复。
我正在尝试通过我的控制器 - 模型发送通知。我在我的 appdelegate 上收到一条错误消息:
[Test.ViewController naamInModelChangedHandler]: unrecognized selector sent to instance 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)
}
谁能帮我解决这个错误?
选择器的名称应为"naamInModelChangedHandler:"
。注意 :
因为 naamInModelChangedHandler
接受一个 NSNotification
作为参数。因此,您应该像这样添加观察者:
NSNotificationCenter.defaultCenter().addObserver(
self,
selector: "naamInModelChangedHandler:",
name: "NAAM_CHANGED",
object: model)