(id)发送者在方法签名中作为目标 - 动作模式中的选择器传递

问题描述 投票:2回答:1

文档说方法签名必须如下:

- (IBAction)doSomething:(id)sender;

但我可以使用其他签名进行操作,例如:

- (IBAction)doSomething:(UIButton *)button; // could write sender instead of
                                            // button, but result is the same

它有效,但是

  • 如果我cmd +单击选择器,Xcode不会重定向
  • 这违反了惯例。

是否有任何其他原因在方法签名中向发件人添加类型是不好的做法?

ios objective-c xcode ibaction
1个回答
1
投票

这两个陈述都很好。

我怀疑cmd + click没有重定向你,因为你是cmd +点击方法名称中的参数。单击参数时,cmd +单击不稳定。我建议你坚持点击方法名称,它应该工作正常。如果您正在获取文档(选项+单击),我发现同样的事情适用。

同样,与发件人的ID相比更具体。如果您使用图形方法将按钮连接到您的代码,这实际上是一个选项:您可以选择id或UIButton。

这里“按钮”的参数名称无关紧要。您可以将其命名为MountKilimanjaro,因为该参数/变量名称是方法的本地名称,所以它会很好。

希望这可以帮助。

© www.soinside.com 2019 - 2024. All rights reserved.