什么是Nib文件?(Nib文件是一种特殊类型的资源文件,它用于保存iPhone OS或Mac OS X应用程序的用户接口)...
Nib文件是一種特殊類型的資源文件,它用于保存iPhone OS或Mac OS X應(yīng)用程序的用戶接口。Nib文件是Interface Builder文檔。通常您會使用Interface Builder設(shè)計應(yīng)用程序的可視部分-例如窗口或視圖。有些時候,您可能也用它來配置一些不可視的對象,例如控制器對象(用于管理窗口和視圖)。實際上,所有這些操作都是在編輯一份Interface Builder文檔,即在創(chuàng)建一份對象圖。保存文件的時候,就是將該對象圖進行歸檔,加載文件的時候,就是將對象圖進行解檔。
Nib文件—也就是對象圖-可以包含占位對象,這種對象用于指涉存在于文檔之外的對象。這些對象雖然不在文檔中,但卻可能含有文檔內(nèi)對象的引用,或者被文檔內(nèi)的對象引用。文件擁有者就是一種特殊的占位對象。
在程序運行的時候,您可以使用?loadNibNamed:owner:(或者此方法變種)加載Nib文件。在Nib文件中,文件擁有者是個占位對象,它表示您通過owner參數(shù)傳給此方法的對象。加載Nib文件的時候,所有在Interface Builder中建立的關(guān)聯(lián)(文件擁有者和其他對象之間的關(guān)聯(lián))都能夠在運行時重新建立起來。
nib文件是一種數(shù)據(jù)文件,用于存儲可在應(yīng)用程序需要時使用的一些“凍結(jié)”的對象。大多數(shù)情況下,應(yīng)用程序使用nib文件來存儲構(gòu)成用戶界面的窗口和視圖。當您將nib文件載入應(yīng)用程序時,nib裝載代碼會將文件中的內(nèi)容轉(zhuǎn)化為應(yīng)用程序可以操作的真正對象。通過這個機制,nib文件省去了用代碼創(chuàng)建那些對象的工作。
?
Interface Builder是一個可視化的設(shè)計環(huán)境,您可以用它來創(chuàng)建nib文件。您可以將標準對象(比如UIKit框架中提供的窗口和視圖)和Xcode工程中的定制對象放到nib文件中。在Interface Builder中創(chuàng)建視圖層次相當簡單,只需要對視圖對象進行簡單拖拽就可以了。您也可以通過查看器窗口來配置每個對象的屬性,以及通過創(chuàng)建對象間的連接來定義它們在運行時的關(guān)系。您所做的改變最終都會作為nib文件的一部分存儲到磁盤上。
在運行時,當您需要nib文件中包含的對象時,就將nib文件裝載到程序中。典型情況下,裝載nib文件的時機是當用戶界面發(fā)生變化和需要在屏幕上顯示某些新視圖的時候。如果您的應(yīng)用程序使用視圖控制器,則視圖控制器會自動處理nib文件的裝載過程,當然,您也可以通過類的方法自行裝載。
?
主Nib文件
?
初始化的另一個任務(wù)是裝載應(yīng)用程序的主nib文件。如果應(yīng)用程序的信息屬性列表(Info.plist)文件中含有NSMainNibFile鍵,則作為初始化過程的一個部分,UIApplication對象會裝載該鍵指定的nib文件。主nib文件是唯一一個自動裝載的nib文件,其它的nib文件可以在稍后根據(jù)需要進行裝載。
Nib文件是基于磁盤的資源文件,用于存儲一或多個對象的快照。iPhone應(yīng)用程序的主nib文件通常包含一個窗口對象和一個應(yīng)用程序委托對象,還可能包含一個或多個管理窗口的其它重要對象。裝載一個nib文件會使該文件中的對象被重新構(gòu)造,從而將每個對象的磁盤表示轉(zhuǎn)化為應(yīng)用程序可以操作的內(nèi)存對象。從nib文件中裝載的對象和通過編程方式創(chuàng)建的對象之間沒有區(qū)別。然而,對于用戶界面而言,以圖形的方式(使用Interface Builder程序)創(chuàng)建與用戶界面相關(guān)聯(lián)的對象并將它們存儲在nib文件中通常比以編程的方式進行創(chuàng)建更加方便。
轉(zhuǎn)載于:https://www.cnblogs.com/kenshinobiy/p/4864373.html
《新程序員》:云原生和全面數(shù)字化實踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的什么是Nib文件?(Nib文件是一种特殊类型的资源文件,它用于保存iPhone OS或Mac OS X应用程序的用户接口)...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: iOS:触摸控件UITouch、事件类U
- 下一篇: android 应用程序框架