使用冒号 : 或不使用选择器
我想知道:编写不带冒号的选择器名称 @selector(mySelector)
或使用冒号的 @selector(mySelector:)
有什么区别?
就像:
UIBarButtonItem *addButton = [[UIBarButtonItem alloc]initWith...
target:self
action:@selector(addAction:)];
我找不到另一个没有冒号的例子,但我很确定我已经见过其中的一些。
I was wondering: what's the difference between writing a selector name with no colon @selector(mySelector)
, or @selector(mySelector:)
with the colon?
As in:
UIBarButtonItem *addButton = [[UIBarButtonItem alloc]initWith...
target:self
action:@selector(addAction:)];
I can't find another example without the colon, but I'm quite sure I have already seen some of them.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
当且仅当该方法接受参数时,方法名称后面需要冒号。
无函数参数:
有参数:
The colon is needed after the method's name if and only if the method takes an argument.
No function parameters:
Has parameter:
在某些情况下,冒号的数量可以决定参数。例如,如果您传入带有一个冒号的操作方法,它将发送
sender
作为第一个参数。如果您传入带有两个冒号的选择器,您也会获得事件
。显然,没有冒号意味着没有参数。In certain cases, the number of colons can determine arguments. For example, if you pass in an action method with one colon, it'll send the
sender
as the first argument. If you pass in a selector with two colons, you'll get theevent
as well. No colon means, obviously, no arguments.