当我使用代码-(IBAction) onClick1: (id) sender;
时,将以sender
传递什么?我试图使用发送者作为对象ID并失败(我的意思是我使用了代码sender.tag
并且它没有返回)。
我确信当我在这里使用- (void)buttonTouched1:(UIButton *)sender;
时,发件人应该充当对象ID。
答案 0 :(得分:6)
发件人通常是调用onClick1邮件的对象。例如,如果您有一个按钮并将 - (IBAction)onClick1:(id)发件人消息与按钮的“touch up inside”事件相关联,那么当您点击按钮时,表示该按钮的对象将被传递到onClick1:
-(IBAction)onClick1:(id)sender
{
UIButton *button = (UIButton*)sender;
NSLog(@"%@", button);
}
答案 1 :(得分:4)
sender
变量通常是发送操作消息的对象(这不完全是保证 - 例如,您可以自己发送操作消息并传递任何您想要的内容 - 但这就是它应该如何工作的方式。)
您不能只在这些方法中编写sender.tag
因为点表示法要求对象具有静态类型,因此编译器知道属性对应的消息。如果您改为编写[sender tag]
,它将起作用。