有人可以用人类可以理解的方式解释"Outlet"是什么吗?
它是一个在Interface Builder中显示的实例变量,因此您可以使用IB将另一个对象插入插座.
当您加载笔尖时,笔尖加载系统将执行必要的魔法,以确保在每个插座中显示正确的对象.
编辑:我打算写一篇关于这张图片的完整博客文章(我在完成图片后改变了主意),但即使是单独的,也应该有助于澄清人们的出路.干得好:
出口关系.http://boredzo.org/images/The-outlet-relationship-small.png
从代码的角度来看,IBOutlet只是Interface Builder的一个提示.它实际上是一个宏,编译,甚至根本没有.也就是说,编译时编译器会完全删除.
但是Interface Builder可以扫描您的IBOutlet代码,因此当您右键单击IB中的对象时,您可以看到可以连接到其他对象的所有插座.
替代文字http://img27.imageshack.us/img27/5512/picture820090228.png
在此示例中,delegate是UIApplication的成员变量,它也是IBOutlet.
我只是把它想象成一个UI控件的指针.一旦我在脑海中建立了这种心理联系,那就有意义了.
我会说它们是将用户界面对象连接到使用它们的代码的桥梁.顾名思义,它们为您的代码提供了"插入"UI的位置.
IBOutlet关键字的定义如下:
#ifndef IBOutlet #define IBOutlet #endif
就编译器而言,IBOutlet绝对没有任何作用.它的唯一目的是作为一个提示告诉Interface Builder这是一个实例变量,我们将连接到一个nib中的对象.您创建并想要连接到nib文件中的对象的任何实例变量必须以IBOutlet关键字开头.