插座變數

插座變數是一種對象實例變數,它的特別之處在於,其對象的引用是由Interface Builder來配置和歸檔的。每次包含對象從nib檔案解檔時,它與插座變數之間的連線都需要重新建立。

基本介紹

  • 中文名:插座變數
  • 本質:一種動態的模式
  • 要求:對象設法得到其委託者的引用
  • 作用:以便向它們傳送訊息
概念,限定符,

概念

對象的合成是一種動態的模式,要求對象設法得到其委託者的引用,以便向它們傳送訊息。它通常以實例變數的方式保有其它對象。這些變數必須在程式執行的某些點上,用正確的引用進行初始化。
插座變數包含對象以實例變數的方式保有插座變數,其類型限定符為IBOutlet。例如:
@interface AppController : NSObject
{
IBOutlet NSArray *keywords;
}
插座變數是一個實例變數,因此也成為對象封裝數據的一部分。但是插座變數不僅僅是個簡單的實例變數。對象與其插座變數之間的連線會被歸檔到nib檔案中,在nib檔案被裝載的時候,每個連線都會被解檔和保持,因此在需要向其它對象傳送訊息時,插座對象總是可用的。

限定符

類型限定符IBOutlet是一個標籤,用於實例變數的聲明。通過這個限定符,Interface Builder程式在開發過程中可以和Xcode同步插座變數的顯示和連線。換句話說,您可以為某個定製對象添加插座變數並建立連線,然後生成帶有這個插座變數的頭檔案。或者,您可以在Xcode中聲明插座變數(使用IBOutlet限定符),Interface Builder就能識別這些新的聲明,使您可以建立連線,並將連線存儲到nib檔案中。圖5-1顯示了如何在Interface Builder中連線插座變數。
在Interface Builder中連線插座變數
插座變數
應用程式通常在其定製的控制器對象和用戶界面對象之間設定插座變數連線,但是這種連線可以在Interface Builders中代表實例的任何對象之間,甚至使兩個定製對象之間建立。和其它實例變數一樣,您應該可以判斷在類中包含插座變數的正當性;一個對象包含的實例變數越多,記憶體開銷就越大。如果有其它方式可以得到對象的引用,比如通過其在矩陣中的索引位置進行查找,或者將對象作為函式的參數進行傳遞,或者通過使用標籤(一個分配好的數字標識),則您應該使用其它的方法。

相關詞條

熱門詞條

聯絡我們