我们在代码中可能经常会看到如下用法:
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(tapGuideView:)];
很显然 这个selector是带参数的在selector的方法里
- (void)tapGuideView:(UITapGestureRecognizer *)tap{
[guideView removeFromSuperview];
}
我们传递了一个 UITapGestureRecognizer类型的对象给方法 可能很多人有困惑,我在上面的selector中明明给他传递什么类型的参数 他下面怎么就知道我要的是什么参数呢其实是这样的 这个参数是系统默认的 比如这里是UITapGestureRecognizer的初始化 那么默认传递过去的就是UITapGestureRecognizer对象 除非是这种 [NSTimer scheduledTimerWithTimeInterval:0.0 target:self selector:@selector(onTimer:) userInfo:dict repeats:NO];
带参数的能传指定的值.
参考:点击打开链接