有什么方法可以将简单的整数参数传递给@selector
方法。请分享您可以尝试的一个班轮代码。我尝试过使用发送方和标记,但是没有按预期工作,相反,我更愿意将int
值作为参数传递并在方法调用中收集。
我只想将此整数值传递给按钮操作上调用的函数,我不想使用发件人ID等。任何其他方法请告诉我。
static int i=1;
[button addTarget:self
action:@selector(removeTextField:)
forControlEvents:UIControlEventTouchDown];
答案 0 :(得分:2)
我假设你想要一种方法来跟踪点击了哪个按钮。在这种情况下,最简单的方法是将按钮的标记设置为整数:
button.tag = 1;
[button addTarget:self action:@selector(removeTextField:) forControlEvents:UIControlEventTouchDown];
然后通过发件人检索标记:
-(IBAction) removeTextField:(id)sender
{
UIButton *button = (UIButton *) sender;
NSLog(@"%d",button.tag); // an NSInteger
}
还有其他的解决方法,例如子类化UIButton,但它们大多需要大量的工作。
答案 1 :(得分:0)
您无法通过选择器传递参数。但是,您可以创建INT作为类属性,并从类中的任何方法访问它。这意味着您可以使用与选择器相同的方法设置它,然后在选择器指向的方法中访问它。
或者,您可以将按钮的标记设置为您需要的值,并将其作为您的int传递,但这可能不是最好的方法。
答案 2 :(得分:-1)
您应该将int转换为NSUInteger或NSNumber。
NSNumber* iParam = [NSNumber numberWithInt:i];
获取int值:
int i = [iParam intValue];