我想知道:用冒号@selector(mySelector)
编写选择器名称或用冒号编写@selector(mySelector:)
之间的区别是什么?
如:
UIBarButtonItem *addButton = [[UIBarButtonItem alloc]initWith...
target:self
action:@selector(addAction:)];
我找不到没有冒号的另一个例子,但我很确定我已经看过其中的一些。
答案 0 :(得分:13)
在方法的名称之后需要冒号,当且仅当方法接受参数时。
无功能参数:
-(void)addAction {}
// Use ...@selector(addAction)...
有参数:
-(void)addAction:(id)info {}
// Use ...@selector(addAction:)...
答案 1 :(得分:1)
在某些情况下,冒号的数量可以确定参数。例如,如果传入一个冒号的动作方法,它将发送sender
作为第一个参数。如果你传入一个带有两个冒号的选择器,你也会获得event
。显然,没有冒号意味着没有争论。