我在IBAction语句中看到两种处理发送方对象的方法。第一个看起来像这样:
-(IBAction)buttonPressed:(id)sender{
UIButton*someButton=(UIButton*)sender;
//do something with someButton.tag or whatever
}
另一个似乎更容易:
-(IBAction)buttonPressed:(UIButton*)sender{
//do something with sender.tag or whatever
}
我通常选择版本2.如果你知道只有一个按钮会发送到这个方法,那么任何一个特别的理由比另一个更喜欢一种风格?
如果任何可以是发件人,如按钮,开关或滑块等,我可以看到版本1的好处。但是如果您正在寻找UIButton
属性,例如{ {1}}如果您的发件人不是tag
,则不会产生太大影响。因此版本2似乎更直接。
我想我是否会错过一个明显的理由来选择版本1。
答案 0 :(得分:5)
我发现使用第二个版本没问题。我通常使用第二个版本,如果发件人可能是多种类型的对象,则仅使用第一个版本。然后,如果该方法需要知道什么类型的对象,则该方法可以在将发送者转换为特定类型之前查询发送者。
更频繁地我发现不需要访问发件人,所以我只使用:
- (IBAction)buttonPressed {
// Do something.
}