IB在IBAction,IBOutlet等中意味着什么?

时间:2011-12-21 15:15:53

标签: iphone xcode

我是iPhone开发的新手。在阅读Objective-C和Swift代码时,我经常遇到IBActionIBOutlet等等。 IB代表什么?

3 个答案:

答案 0 :(得分:56)

“Interface Builder”。

在Xcode 4之前,接口文件(XIB和NIB)是在一个名为Interface Builder的独立程序中编辑的,因此是前缀。

IBAction定义为voidIBOutlet定义为空。在解析文件以使其可用于连接时,它们只是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作为方法的返回类型来触发控制器类中的特定方法。