以编程方式创建UIButton事件时,@ objc和IBAction之间有什么区别?

J. *_*Doe 3 ibaction target-action swift

UIButton从情节提要中从中创建事件处理程序时,Swift @IBAction在之前添加func。当以编程方式将事件添加UIButton到时func,Swift会出错,并说我需要@objc在方法前面添加,但是当我添加时@IBAction,它也会编译。

两者之间有区别吗?以UIButton 编程方式向我添加事件时应该使用哪一个?

Tam*_*gel 5

IBAction前缀已经将该方法公开给Objective-C运行时,因此无需在其之前加上前缀@objc

由于IB代表Interface Builder,所以在以编程方式创建按钮时不必使用它。它所做的一切(除了将方法公开给Objective-C外)是使Interface Builder将该功能作为连接检查器中的动作列出。