的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;}
一样,如果这有助于;-)