【发布时间】:2011-02-10 05:13:26
【问题描述】:
刚刚开始 iPhone 开发和Objective-C。
昨天我试图在我的视图中添加观察者以获得通知,但我一直收到此错误:
无法识别的选择器发送到实例
我发现我需要在选择器参数中包含尾随冒号:
[[NSNotificationCenter defaultCenter] addObserver:self 选择器:@selector(nameOfMySelector:) name:@"BBLocationServicesAreDisabled" object:nil];
今天,我以为我很聪明,因为在为按钮设置动作参数时,我想起了昨天的错误,并在动作参数中添加了冒号。 action 参数采用@selector,就像为NSNotification 设置观察者时的选择器参数一样,所以我认为我做对了。
但是,使用以下代码:
[self.callToActionButton addTarget:self action:@selector(nameOfMySelector:) forControlEvents:UIControlEventTouchUpInside];
我得到完全相同的错误:
无法识别的选择器发送到实例
什么给了?为什么一个@selector 需要尾随冒号,而另一个不需要?我应该遵循什么规则,什么时候应该包含它,什么时候应该不包含它,为什么我不能总是只做一个或另一个?
谢谢!
【问题讨论】:
-
是冒号,不是分号。无论如何,您的
nameOfMySelector:方法的原型是什么?它想要什么样的论据? -
在这两种情况下你指的是同一个方法吗?
-
哈!我的疏忽;我已经编辑了帖子以将它们称为冒号。
-
我已经更正了标题。
标签: ios objective-c iphone selector nsnotifications