什麼是Nib文件

Nib文件是一種特殊類型的資源文件,它用於保存iPhone OS或Mac OS X應用程序的用戶接口。Nib文件是Interface Builder文檔。通常您會使用Interface Builder設計應用程序的可視部分-例如窗口或視圖。有些時候,您可能也用它來配置一些不可視的對象,例如控制器對象(用於管理窗口和視圖)。實際上,所有這些操作都是在編輯一份Interface Builder文檔,即在創建一份對象圖。保存文件的時候,就是將該對象圖進行歸檔,加載文件的時候,就是將對象圖進行解檔。

Nib文件—也就是對象圖-可以包含佔位對象,這種對象用於指涉存在於文檔之外的對象。這些對象雖然不在文檔中,但卻可能含有文檔內對象的引用,或者被文檔內的對象引用。文件擁有者就是一種特殊的佔位對象。

在程序運行的時候,您可以使用 loadNibNamed:owner:(或者此方法變種)加載Nib文件。在Nib文件中,文件擁有者是個佔位對象,它表示您通過owner參數傳給此方法的對象。加載Nib文件的時候,所有在Interface Builder中建立的關聯(文件擁有者和其他對象之間的關聯)都能夠在運行時重新建立起來。

nib文件是一種數據文件,用於存儲可在應用程序需要時使用的一些“凍結”的對象。大多數情況下,應用程序使用nib文件來存儲構成用戶界面的窗口和視圖。當您將nib文件載入應用程序時,nib裝載代碼會將文件中的內容轉化爲應用程序可以操作的真正對象。通過這個機制,nib文件省去了用代碼創建那些對象的工作。

Interface Builder是一個可視化的設計環境,您可以用它來創建nib文件。您可以將標準對象(比如UIKit框架中提供的窗口和視圖)和Xcode工程中的定製對象放到nib文件中。在Interface Builder中創建視圖層次相當簡單,只需要對視圖對象進行簡單拖拽就可以了。您也可以通過查看器窗口來配置每個對象的屬性,以及通過創建對象間的連接來定義它們在運行時的關係。您所做的改變最終都會作爲nib文件的一部分存儲到磁盤上。

在運行時,當您需要nib文件中包含的對象時,就將nib文件裝載到程序中。典型情況下,裝載nib文件的時機是當用戶界面發生變化和需要在屏幕上顯示某些新視圖的時候。如果您的應用程序使用視圖控制器,則視圖控制器會自動處理nib文件的裝載過程,當然,您也可以通過類的方法自行裝載。

主Nib文件

初始化的另一個任務是裝載應用程序的主nib文件。如果應用程序的信息屬性列表(Info.plist)文件中含有NSMainNibFile鍵,則作爲初始化過程的一個部分,UIApplication對象會裝載該鍵指定的nib文件。主nib文件是唯一一個自動裝載的nib文件,其它的nib文件可以在稍後根據需要進行裝載。

Nib文件是基於磁盤的資源文件,用於存儲一或多個對象的快照。iPhone應用程序的主nib文件通常包含一個窗口對象和一個應用程序委託對象,還可能包含一個或多個管理窗口的其它重要對象。裝載一個nib文件會使該文件中的對象被重新構造,從而將每個對象的磁盤表示轉化爲應用程序可以操作的內存對象。從nib文件中裝載的對象和通過編程方式創建的對象之間沒有區別。然而,對於用戶界面而言,以圖形的方式(使用Interface Builder程序)創建與用戶界面相關聯的對象並將它們存儲在nib文件中通常比以編程的方式進行創建更加方便。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章