有人可以用人性化的理解方式解釋什麼是「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