我是iPhone开发的新手。在阅读Objective-C和Swift代码时,我经常遇到IBAction
,IBOutlet
等等。 IB
代表什么?
答案 0 :(得分:56)
“Interface Builder”。
在Xcode 4之前,接口文件(XIB和NIB)是在一个名为Interface Builder的独立程序中编辑的,因此是前缀。
IBAction
定义为void
,IBOutlet
定义为空。在解析文件以使其可用于连接时,它们只是Interface Builder的线索。
只需添加引用,在AppKit / NSNibDeclarations.h中你会发现这些:
#ifndef IBOutlet
#define IBOutlet
#endif
#ifndef IBAction
#define IBAction void
#endif
所以,实际上,代码是这样的:
@interface ...
{
IBOutlet NSTextField *label;
}
- (IBAction)buttonPressed:(id)sender;
@end
将转变为:
@interface ...
{
NSTextField *label;
}
- (void)buttonPressed:(id)sender;
@end
通过预处理器,甚至在编译器看到它之前。这些关键字就像Interface Builder一样。
答案 1 :(得分:6)
IB代表界面构建器。
答案 2 :(得分:2)
IBAction和IBOutlet是界面生成器常量 IBOutlet:Controller类可以使用名为IBOutlet的特殊常量引用nib文件中的对象。
IBActions:可以将nib文件中的接口对象设置为使用IBAction作为方法的返回类型来触发控制器类中的特定方法。