我有一个方法 hideButton

-(void) hideButton:(UIButton) *button {
[button setHidden:YES];
}

并且我收到“无法将对象用作方法的参数”错误。

我希望能够在调用此方法时将按钮作为参数提供给方法
[self performSelector:@selector(hideButton:smallestMonster1)
withObject:nil afterDelay:1.0];

如何才能做到这一点?由于上述尝试不起作用。我需要能够将按钮作为参数提供,或者至少让方法知道调用哪个按钮在 1 秒后隐藏。

谢谢

最佳答案

您可以通过 withObject 参数将参数传递给选择器:

[self performSelector:@selector(hideButton:) withObject:smallestMonster1 afterDelay:1.0];

请注意,您最多可以通过这种方式传递 1 个参数。如果您需要传递更多参数,则需要为此使用 NSInvocation 类。

编辑:正确的方法声明:
-(void) hideButton:(UIButton*) button

您必须将参数类型放在 () 内。你的 hideButton 方法接收指向 UIButton 的指针,所以你应该把 UIButton* 放在那里

关于iphone - 执行 :@selector using a method with parameters,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3329081/

10-12 13:04