的XIB File是basicly一個uncompile NIB文件,XIB S能夠始終在Xcode (除非它們是過時的或損壞)但最NIB s的壓縮(平坦的)和被編輯無法開啓。然而舊NIB s爲含有一些源束/存檔包括designable.nib
這常常是就在更名XIB文件和一個keyedobjects.nib
其是其它編譯NIB
NIB = N xt I nterface B uilder
XIB = X毫升我覆蓋整個院落乙 uilder
雖然新存檔NIB文件是不能打開到最應用,包括Xcode中,他們仍然可以潛在地是未歸檔。我發現這個所謂的NibUnlocker免費的應用程序在CharlesSoft網站這有可能拆解壓縮筆尖文件導出爲一個XIB文件。這個應用程序仍然相當麻煩,但它有時是非常準確的基於Nib的內容。
(NibUnlocker是非常不準確的名稱,碎粒沒有鎖定在歸檔)
Click to Download Nib Unlocker
如果你想知道多一點,你可以閱讀一些額外的信息我提供瞭如下關於NIB和XIB格式:
NXT Interface Builder的解剖:
存檔NIB小號
壓縮NIB文件是分析複雜的文件,但這是不可能的。這些文件的結構基於壓縮的屬性列表(以「bplist00」開頭),其中一些內容通過NSKeyedArchiver存檔。由於NIB被格式化爲屬性列表,這允許一個小小的黑客攻擊:如果你實際上將Nib的擴展名更改爲.plist,例如。 ArchivedNib.nib
至ArchivedNib.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;}
一樣,如果這有助於;-)