刚开始使用iPhone开发和Objective-C。何时用@selector使用冒号
昨天我在想的addObserver在我的观点的通知,我不断收到此错误:
unrecognized selector sent to instance
我跟踪它的事实,我需要包括尾随冒号我选择参数:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(nameOfMySelector:) name:@"BBLocationServicesAreDisabled" object:nil];
今天,我以为我是聪明的,因为设置操作参数的按钮时,我想起昨天我的错误,并增加结肠行动的说法。 action参数需要一个@selector,就像设置NSNotification的观察者时的selector参数一样,所以我认为我做的是正确的。
然而,用下面的代码:
[self.callToActionButton addTarget:self action:@selector(nameOfMySelector:) forControlEvents:UIControlEventTouchUpInside];
我得到确切的同样的错误:
unrecognized selector sent to instance
是怎么回事?为什么一个@选择器需要一个尾部冒号,而另一个却不需要?我应该遵循什么规则,什么时候应该包括什么规则,什么时候应该停止规则,为什么我不能总是只做一个或另一个?
谢谢!
这是一个冒号,而不是分号。无论如何,你的`nameOfMySelector:`方法的原型是什么?它想要什么样的论据? – BoltClock 2011-02-10 05:14:32
你是否也指两种情况下的相同方法? – BoltClock 2011-02-10 05:27:01