鉴于在Xcode 4.6.3中使用了iOS SDK 6.1,在头文件中声明IBAction
的方法签名是否有所不同?
如果不将方法声明放在头文件中,应用程序仍然可以编译并运行而不会出现问题。但是,在故事板中无法看到该方法。
是否存在未在头文件中声明方法的隐藏问题?是否存在内存消耗差异?
答案 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)
即使您计划将其连接到界面构建器,它仍然不在头文件中。我个人只是将它们直接放入实现文件中。