2011-08-24 43 views
0

雖然指定了一個在視圖控制器和View之間提供連接的實例變量,但我們在View對象類型之前使用了IBOutlet關鍵字。這有助於表明它是連接到View的實例變量。在學習Objective-C和Xcode時一定會注意到好奇心

但是,有沒有一種情況下,我不會需要在我的視圖對象類型之前的IBOutlet關鍵字?例如:我們可以有這樣一個場景,一個:

UIButton *display ; 

具有某種使用VS

IBOutlet UIButton *display ; 

這個問題生髮出來的好奇心。

另一個問題,我可能與理解界面和C的一般細微差別有關。

在視圖控制器或任何這樣的控制器中,我們傾向於「導入」頭文件而不是實現文件。我與這個概念不一致,它只是一個好奇心?

回答

2

IBOutlet」關鍵字不會更改有關您的程序的任何內容,它只是允許Interface Builder識別哪些連接可用。如果你不需要在你的界面中連接某些東西(例如,如果你只想要一個實例變量用於私人存儲,或者如果你想使用@property),那麼你不必使用IBOutlet

我們導入頭文件只是爲了讓編譯器知道從程序中的其他位置使用它們時可用的類和方法。一個實現文件不需要導入;它只需要編譯到程序中,它所包含的內容就可以使用。

0

IBOutlet和IBAction幫助Interface Builder檢測到您希望連接到UI控件的插口和動作,在編譯時這些IBOutlet和IBAction被忽略並且沒有用處。

我相信你在Xcode 4.0+中不再需要這些關鍵字。

當您以編程方式構建UI控件時(代碼中),您可以有一個不需要IBOutlet或IBAction的場景。

+0

你仍然需要它們。如果你沒有它們,你不能在IB中做拖拽連接.. – Flyingdiver

+0

Yea Callum,我們仍然這樣做,並且我知道它們幫助界面生成器檢測出口和動作,問題是如果有一個場景那不使用IBOutlet關鍵字...我不這麼認爲,但是我想問問我想問 –

+0

Parijat,看看我的更新。 –

2

對於編譯器,IBOUTLET是一個空操作符。這不代表任何意思。唯一的目的是告訴Interface Builder你打算將它連接到一個接口對象。

頭文件定義了接口,這就是所有其他類實現所需要的。