有人可以用人性化的理解方式解释什么是“Outlet”吗?什么描述了Objective-C/Cocoa中最好的“Outlet”?
回答
我只是把它当作一个指向UI控件。一旦我在脑海中形成了这种精神联系,它就有意义了。
我会说他们是将用户界面对象连接到使用它们的代码的桥梁。就像名称所暗示的那样,它们提供了一个将您的UI“插入”到代码中的位置。
这是一个实例变量,显示在Interface Builder中,以便您可以使用IB将另一个对象插入插座。
当您加载笔尖时,笔尖加载系统将执行必要的魔术以确保正确的对象出现在每个插座中。
编辑:我打算围绕这张图片写一篇完整的博客文章(我在完成图片后改变了主意),但即使是孤身一人,它也应该有助于为人们澄清网点。在这里你去:
The outlet relationship. http://boredzo.org/images/The-outlet-relationship-small.png
+1你使用了什么绘图工具? – 2010-09-26 01:55:37
Yar:Lineform。 http://freeverse.com/lineform/ – 2010-09-26 04:41:28
如果A需要了解B,那么A是一个动态创建的对象(例如NSOperation),B是applicationController? – Vassilis 2011-03-26 12:22:58
IBOutlet
是一个符号,用于指示界面生成器,一个对象实例变量delcared作为
IBOutlet id ivar_name;
应作为相关联的类的一个实例的出口。这使您可以在Interface Builder中以图形方式连接对象,以便在加载NIB之后(即,当对象发送-awakeFromNib
消息时),ivar_name的值将成为指向您在Interface Builder中选择为插座值的对象的指针。
从Objective-C语言的角度来看,IBOutlet
毫无意义。
从代码的角度来看,IBOutlet仅为Interface Builder的提示。它实际上是一个编译成的宏,什么也没有。也就是说,编译时编译器完全删除。
但Interface Builder可以扫描IBOutlet的代码,因此当您在IB中右键单击某个对象时,您可以看到可以连接到其他对象的所有插座。
alt text http://img27.imageshack.us/img27/5512/picture820090228.png
在这个例子中,委托是UIApplication的的成员变量,它是一个IBOutlet太。
的IBOutlet中关键字的定义是这样的:只要编译器而言
#ifndef IBOutlet
#define IBOutlet
#endif
IBOutlet中绝对什么都不做。其唯一 的目的是作为一个提示告诉Interface Builder,这是一个实例变量,我们将 连接到笔尖中的对象。您创建的任何实例变量,并且想要连接到nib文件中的对象的所有实例变量都必须以IBOutlet关键字开头。
outlet是代码中的实例变量(在X代码中),可以为用户界面对象(在Interface Builder中)分配一个引用。将用户界面对象插入到实例变量中。该分配在由Interface Builder创建的NIB文件中指定。
- 1. 什么描述@property(.....)最好?那真的有什么好处?
- 2. 什么描述了Objective-C/cocoa Nib中最好的“文件所有者”?
- 3. 为什么我的描述少了regex_error?
- 4. 什么描述最好的术语“内存足迹”?
- 5. iPhone:(BOOL)isPad方法描述了什么?
- 6. 如何最好地描述TreeSort和HeapSort算法是什么?
- 7. 最好的方式来描述在SQL
- 8. 哪个URL描述资源最好?
- 9. 数据集中的'MGMTCLASS'描述了什么?
- 10. 什么是包描述符?
- 11. 什么是描述符?
- 12. WMAppMaifest.xml中的描述用于什么?
- 13. 什么是正确的术语来描述project.clj和core.clj中发生了什么?
- 14. :: std :: nested_exception和朋友有什么好的描述吗?
- 15. 什么是描述数据模型的好数据模型?
- 16. 描述Web用户连接速度的好方法是什么?
- 17. 数据应该描述自己吗?在什么情况下最好是不是?
- 18. 什么样的XML文档描述了这个DTD?
- 19. 描述和描述之间有什么区别?
- 20. 只是描述接口描述实现需要做什么?
- 21. 什么是UITextView的“目的描述”?
- 22. 什么是“嵌入式硬件系统”的最佳描述?
- 23. 匹配FREAK描述符的最佳方法是什么?
- 24. 什么是最简单的方法来刮描述标签
- 25. listIterator API描述的含义是什么?
- 26. 什么是平均值的注描述
- 27. SURF描述符的值是什么?
- 28. MBUF满了,最好做什么?
- 29. 这里描述了什么多线程范例?
- 30. 字符串java请描述发生了什么,如果statemtnt
你的意思是“以一种(原文如此)人性化的理解方式?”你难以理解哪部分?你的背景是什么?提出问题时,这些对预先陈述很重要。 – 2009-02-28 03:06:46
所有可以从界面构建器(IBOutlet的)拖动的东西。 – 2012-10-14 21:57:35