14

有人可以以人类可以理解的方式解释什么是“出口”吗?

4

7 回答 7

26

它是一个显示在 Interface Builder 中的实例变量,因此您可以使用 IB 将另一个对象插入到插座中。

当您加载笔尖时,笔尖加载系统将发挥必要的作用,以确保正确的对象出现在每个插座中。

编辑:我打算围绕这张图片写一篇完整的博客文章(完成图片后我改变了主意),但即使是单独的,它也应该有助于澄清人们的出路。干得好:

出口关系。
(来源:boredzo.org

于 2009-02-27T20:13:53.543 回答
11

从代码的角度来看,IBOutlet 只是对 Interface Builder 的提示。它实际上是一个编译成的宏,嗯,什么都没有。即编译器在编译时完全删除。

但是 Interface Builder 可以扫描您的代码以查找 IBOutlet,因此当您右键单击 IB 中的对象时,您可以看到可以连接到其他对象的所有插座。

替代文字 http://img27.imageshack.us/img27/5512/picture820090228.png

在这个例子中,delegate是 UIApplication 的成员变量,也是一个 IBOutlet。

于 2009-02-28T14:29:32.397 回答
10

我只是认为它是一个指向 UI 控件的指针。一旦我在脑海中建立了这种心理联系,它就变得有意义了。

于 2009-02-27T20:24:39.057 回答
5

我会说它们是将您的用户界面对象连接到使用它们的代码的桥梁。顾名思义,它们提供了一个将用户界面“插入”到代码中的位置。

于 2009-02-27T20:07:44.230 回答
5

IBOutlet 关键字定义如下:

#ifndef IBOutlet
#define IBOutlet
#endif

就编译器而言,IBOutlet 完全没有做任何事情。它的唯一目的是作为一个提示,告诉 Interface Builder 这是一个实例变量,我们将连接到 nib 中的对象。您创建并希望连接到 nib 文件中的对象的任何实例变量必须以 IBOutlet 关键字开头。

于 2009-08-25T05:47:56.207 回答
3

IBOutlet是一个符号,向 Interface Builder 指示对象实例变量定义为

IBOutlet id ivar_name;

应该作为关联类的实例的出口来呈现。这允许您在 Interface Builder 中以图形方式连接对象,以便在加载 NIB 后(即,当向对象发送-awakeFromNib消息时),ivar_name 的值将是指向您在 Interface Builder 中选择作为出口值的对象的指针。

从 Objective-C 语言的角度来看,IBOutlet没有任何意义。

于 2009-02-27T22:14:33.830 回答
0

出口是您的代码(在 X 代码中)中的一个实例变量,可以为它分配对用户界面对象的引用(在 Interface Builder 中)。您将用户界面对象插入到实例变量中。分配在 Interface Builder 创建的 NIB 文件中指定。

于 2010-01-20T07:01:56.370 回答