我应该把IBActions放在头文件中吗?

时间:2013-07-25 08:00:22

标签: cocoa-touch ibaction

鉴于在Xcode 4.6.3中使用了iOS SDK 6.1,在头文件中声明IBAction的方法签名是否有所不同?

如果不将方法声明放在头文件中,应用程序仍然可以编译并运行而不会出现问题。但是,在故事板中无法看到该方法。

是否存在未在头文件中声明方法的隐藏问题?是否存在内存消耗差异?

3 个答案:

答案 0 :(得分:1)

如果要在storyboard / interfaz构建器中将其连接,或者您希望将其公开给其他类来调用它,则只在.h文件中声明它。

如果您只想将其设为私有且只在课堂内使用它,则无需在头文件中声明它。

没有记忆或性能差异。

答案 1 :(得分:1)

IBAction方法的整个要点是Interface Builder中的 public 连接点(使用或不使用Storyboard)。

单词IBAction本身为#define d为void。它的唯一目的(IBOutlet也是如此)是允许Xcode扫描你的代码并找到你的控制器需要通过IB连接视图的这些点。如果您以编程方式将控件连接到该方法,则不需要声明的IBAction部分。

没有性能差异,但从语义上讲,在您的实现文件中放置IBAction并没有多大意义。拥有IBAction意味着控制器正在通过该方法与外部对象进行通信,这正是头/公共@interface声明的用途。

答案 2 :(得分:0)

即使您计划将其连接到界面构建器,它仍然不在头文件中。我个人只是将它们直接放入实现文件中。