2010-09-16 82 views

回答

77

從Interface Builder版本3起,添加了一種新的文件格式(擴展名爲.xib),它與.nib功能相同,只是它存儲在一個平面文件中,使其更適合存儲在修訂控制系統和通過工具如diff進行處理。

http://en.wikipedia.org/wiki/Interface_Builder#Design

+1

非常感謝... – Ratan 2010-09-16 12:15:36

+1

沒問題;樂於幫助。 :) – 2010-09-16 12:16:05

+5

xib是代表xml界面構建器 – GameLoading 2011-03-30 07:00:29

3

功能不過是廈門國際銀行是一個源代碼控制友好的格式

13

此外,當您編譯項目,的.xib文件會被編譯成筆尖。

18

XIBs是平面文件而不是捆綁軟件。這使SCM(源代碼管理)系統更容易處理。當您編譯您的應用程序時,XIB將被編譯爲一個NIB文件以包含在您的應用程序中。

包含在應用程序包中的已編譯的NIB在Interface Builder中不再可編輯,並且比等效的XIB或傳統NIB文件小得多。

12

XIB文件是一個basicly NIB 文件的源文件,XIB S能幾乎總是在Xcode (除非它們已經過時或損壞)編輯。而較新的NIB s的壓縮,並且不能打開,舊NIB s爲束可通過的Xcode,捆綁NIB小號包含一些源/歸檔文件,其包括designable.nib觀看這常常是就在重命名XIB文件。


NIB = Ñ XT 覆蓋整個院落 uilder(NXT = NextStep自動= NS)

XIB = X毫升覆蓋整個院落 uilder


雖然新的存檔NIB文件是不能打開的大多數應用,包括Xcode中,他們仍然可能是未歸檔。我發現這個所謂的NibUnlocker免費的應用程序在CharlesSoft網站這有可能拆解壓縮筆尖文件導出爲一個XIB文件。這個應用程序仍然相當麻煩,但它有時是非常準確的基於Nib的內容。

(NibUnlocker是非常不準確的名稱,碎粒沒有鎖定在歸檔)


Click to Download NibUnlocker


如果你想知道多一點,你可以閱讀一些額外的信息我已提供如下關於NIBXIB格式:

NXT Interface Builder的解剖:

存檔NIB小號

壓縮NIB文件是分析複雜的文件,但這是不可能的。這些文件的結構基於壓縮的屬性列表(以「bplist00」開頭),其中一些內容通過NSKeyedArchiver存檔。由於NIB被格式化爲屬性列表,這允許一個小小的黑客攻擊:如果你實際上將Nib的擴展名更改爲.plist,例如。 ArchivedNib.nibArchivedNib.plist您實際上可以在Xcode中將其打開,並將其視爲屬性列表。當您查看筆尖作爲屬性列表時,您可能會獲得一些基本屬性,例如$ version,$ objects,$ archiver和$ top。

有用的注

CFKeyedArchiverUID對象實際上是一個重定向器,在{值= XX},該值爲項$對象陣列中的一個偏移從的開始陣列。例如。 <CFKeyedArchiverUID 0x60800002bc20 [0x7fffef6b8c30]>{value = 29},值= 29,結果將是$對象數組中的第29項。在Objective C中,你可以用這個方法來檢索從一個NSArray這個值:

+ (NSUInteger)valueForKeyedArchiverUID:(id)keyedArchiverUID { 
    void *uid = (__bridge void*)keyedArchiverUID; 
    NSUInteger *valuePtr = uid+16; 
    return *valuePtr;} 

(我發現了這一點,我自己使用互聯網的,後來我用Hopper拆卸NibUnlocker,我在它的源代碼發現,它通過加載NIB的NSDictionary並通過其所有的連接,對象,等會採用相同的技術..並寫出一個新XIB

一樣,如果這有助於;-)

相關問題