在Swift中创建@IBAction时,是否有选择发件人的理由



当您在Xcode中使用IB/情节串连板创建IBAction链接接口对象(例如按钮(和代码文件中的方法时,发送方类型默认设置为Any

由于您是从接口到代码执行此操作的,Xcode应该通过接口知道您使用的控件类型,例如UIButton,那么为什么它会自动将发送方设置为Any类型,而不是专门设置为UIButton

是否有任何理由将其保留为Any,而在创建时不将其更改为UIButton类型?无论是从接口到代码,还是首先在代码中创建IBAction

当你将一个按钮连接到你的视图控制器时,尽管控件从界面上的按钮点击,你得到的代码的基本示例:

@IBAction func playAgain(_ sender: Any) {}

我认为这是一个不合理的默认值。如果您的函数仅适用于单个UI控件,则sender应尽可能是强类型的。

从技术上讲,可以定义单个@IBAction,并将其绑定到不同类型的多个UI控件。但即使在这种情况下,像NSView这样更具体的类型也比Any更合适。

相关内容

最新更新