以编程方式创建 UIButton 事件时,@objc 和 IBAction 之间有什么区别吗?
Any differences between @objc and IBAction when programmatically creating UIButton event?
从 Storyboard 的 UIButton
创建事件处理程序时,Swift 在 func
之前添加 @IBAction
。当以编程方式将事件添加到 UIButton
到 func
时,Swift 给出错误并说我需要在我的方法前面添加 @objc
,但是当我添加 @IBAction
,它也编译。
在以编程方式向我的 UIButton
添加事件时,这 2 和我应该使用哪个有区别吗?
IBAction
前缀已经将方法公开给 Objective-C 运行时,因此无需再添加 @objc
.
前缀
由于 IB 代表 Interface Builder,因此在以编程方式创建按钮时没有必要使用它。它所做的一切(除了将方法公开给 Objective-C 之外)是让 Interface Builder 将函数列为连接检查器中的一个操作。
从 Storyboard 的 UIButton
创建事件处理程序时,Swift 在 func
之前添加 @IBAction
。当以编程方式将事件添加到 UIButton
到 func
时,Swift 给出错误并说我需要在我的方法前面添加 @objc
,但是当我添加 @IBAction
,它也编译。
在以编程方式向我的 UIButton
添加事件时,这 2 和我应该使用哪个有区别吗?
IBAction
前缀已经将方法公开给 Objective-C 运行时,因此无需再添加 @objc
.
由于 IB 代表 Interface Builder,因此在以编程方式创建按钮时没有必要使用它。它所做的一切(除了将方法公开给 Objective-C 之外)是让 Interface Builder 将函数列为连接检查器中的一个操作。