objective-c - 使用 void 而不是 IBAction 作为方法的返回类型

标签 objective-c ios

我正在学习 ObjC 和 iOS 开发。我在我的应用程序中使用的每个组件都是以编程方式创建的( View 、按钮、标签等)。

这是我的代码

...
UIButton *btn = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[self.btn addTarget:self 
                  action:@selector(someAction:) 
        forControlEvents:UIControlEventTouchDown];
....


-(void)someAction
{
 logic
}

我注意到我可以使用 void 而不是 IBAction 作为选择器的返回类型。这是正确的方法吗? 会不会有什么陷阱?

最佳答案

使用 IBAction 告诉 Xcode 您希望该方法在 Interface Builder 中作为操作方法可用。这是唯一的效果。否则它与 void 相同。事实上,在 UINibDeclarations.h 中,您会发现:

#define IBAction void

即使您不使用 nib 文件,使用 IBAction 也是一个好主意,因为它向读者(您或您的同事)发出信号,表明您打算将该方法用作操作一个 UI 控件。

关于objective-c - 使用 void 而不是 IBAction 作为方法的返回类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9143560/

相关文章:

ios - NSFetchedResultsController 对空结果的自定义行为

ios - 如何以编程方式在同一 WIFI 网络上检索设备的 mac 地址

ios - 实现另一个参数的 Swift 泛型类参数

ios - 如何防止Ibeacons中的clone,避免beacons之间的冲突?

ios - 刷新 UITableView 的内容会卡住应用程序

ios - 如何使 Objective-C 类符合 Swift 中定义的协议(protocol)?

ios - 使用 UIViewControllerTransitionCoordinator animateAlongsideTransition 方法

iphone - 核心音频(Audio Units) Audio Session 和 MPVolumeView

iphone - 在特定时间向 iPhone 发送当前位置

ios - 增加最后一节和新标题之间的高度