鉴于 iOS SDK 6.1 在 Xcode 4.6.3 中使用,IBAction
在头文件中声明方法签名是否有所不同?
如果不将方法声明放在头文件中,应用程序仍然能够毫无问题地编译和运行。但是,该方法无法在情节提要中看到。
头文件中没有声明方法有什么隐藏的问题吗?内存消耗有区别吗?
鉴于 iOS SDK 6.1 在 Xcode 4.6.3 中使用,IBAction
在头文件中声明方法签名是否有所不同?
如果不将方法声明放在头文件中,应用程序仍然能够毫无问题地编译和运行。但是,该方法无法在情节提要中看到。
头文件中没有声明方法有什么隐藏的问题吗?内存消耗有区别吗?
.h
如果您想在故事板/interfaz 构建器中连接它,或者您想让其他类调用它,请仅在文件中声明它。
如果您只想将其设为私有并仅在您的类中使用它,则无需在头文件中声明它。
没有内存或性能差异。
方法的全部意义在于IBAction
成为 Interface Builder 中的公共连接点(使用或不使用 Storyboard)。
这个词IBAction
本身就是#define
d as void
。它的唯一目的(同样如此IBOutlet
)是允许 Xcode 扫描您的代码并找到您的控制器需要通过 IB 连接视图的这些点。IBAction
如果您以编程方式将控件连接到该方法,则不需要声明部分。
没有性能差异,但从语义上讲,IBAction
在您的实现文件中放置一个并没有什么意义。有一个IBAction
方法控制器通过该方法与外部对象通信,而这正是标题/公共@interface
声明的用途。
即使您打算将它连接到界面构建器,它仍然没有在头文件中。我个人只是将它们直接放入实现文件中。