刚刚开始进行 iPhone 开发和Objective-C
.
昨天我试图在我的视图中添加观察者以获得通知,但我一直收到此错误:
无法识别的选择器发送到实例
我追查到我需要在选择器参数中包含尾随冒号的事实:
[[NSNotificationCenter defaultCenter] addObserver:self 选择器:@selector(nameOfMySelector:) name:@"BBLocationServicesAreDisabled" object:nil];
今天,我以为我很聪明,因为在为按钮设置动作参数时,我想起了昨天的错误,并在动作参数中添加了冒号。action 参数采用 a @selector
,就像在为 an 设置观察者时选择器参数一样NSNotification
,所以我认为我在做正确的事情。
但是,使用以下代码:
[self.callToActionButton addTarget:self action:@selector(nameOfMySelector:) forControlEvents:UIControlEventTouchUpInside];
我得到完全相同的错误:
无法识别的选择器发送到实例
是什么赋予了?为什么一个@selector
需要尾随冒号,而另一个不需要?我应该遵循什么规则,什么时候应该包含它,什么时候应该放弃它,为什么我不能总是只做一个或另一个?
谢谢!