目标C:向UIButton调用的方法发送参数

Chr*_*ris 4 arguments timer objective-c uibutton ios

我有一个在单击UIButton时调用的方法.当我创建按钮时,我希望它将NSTimer存储为参数.

这是计时器和UIButton的创建.如何添加定时器以发送到方法?我已经尝试了,withObject:timer但它在运行时给了我一个警告和崩溃.

NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:(0.009) target:self selector:@selector(moveStickFig:) userInfo:stickFig repeats:YES];
[stickFig addTarget:self action:@selector(tapFig:andTime:) forControlEvents:UIControlEventTouchUpInside];
Run Code Online (Sandbox Code Playgroud)

这是我发送给它的方法:

-(void) tapFig:(id)sender andTime:(NSTimer *)timer
Run Code Online (Sandbox Code Playgroud)

我在[stickFig performSelector:@selector(tapFig:andTime) withObject:nil withObject:timer]定义UIButton之后也尝试过,但这也会导致警告和崩溃.

Phi*_*hby 7

您不能 - 不使用参数调用UIControl 操作选择器,作为操作源的控件,或作为操作源的控件以及在该控件上发生的UIEvent.在IB中,您必须将UIButton连接到这样的方法:您不能添加任何其他自定义参数.

如果您希望它可以访问其他对象,则它们必须是实例变量.

如果您想了解如何定义实例变量,请查看Apple的Objective C简介.

  • 实际上有三种可能的签名,其中包含零个,一个或两个参数用于操作方法. (3认同)