5 ответов:
начиная с версии Interface Builder 3, новый формат файла (с расширением .xib) был добавлен, который функционально идентичен .перо, за исключением того, что оно хранится в плоском файле, что делает его более подходящим для хранения в системах контроля версий и обработки такими инструментами, как diff.
XIBs-это плоские файлы, а не пакет. Это делает его легче для системы SCM(управление источника управления) для рассмотрения. При компиляции приложения XIB компилируется в файл NIB для включения в приложение.
скомпилированное перо, включенное в пакет приложения, больше не редактируется в Interface Builder и намного меньше, чем эквивалентный XIB или устаревший файл NIB.
The XIB файл в основном является исходным документом Сиб, XIBs почти всегда можно редактировать в Xcode (если они не устарели или поврежден). в то время как новые Сиб s сжимаются и не открываются, чем старше СибS-это пакеты, которые можно просмотреть с помощью Xcode, The Bundled Сибs содержат некоторые исходные / архивные файлы, которые включают
designable.nibкоторый часто просто переименованный XIB.
Сиб = N xt Яnterface Builder (NXT = NextStep = NS)
XIB = Xмл Яnterface Builder
хотя новый архив Сиб файлы открыть невозможно для большинства приложений, включая Xcode, они все же может быть разархивирована. Я нашел это бесплатное приложение под названием NibUnlocker На CharlesSoft сайт, который потенциально может разобрать квартиру Сиб файл и экспортировать его как XIB документ. Это приложение по-прежнему довольно багги, но это иногда очень точно на основе Сибs содержание.
(NibUnlocker-очень неточное имя, Nibs не заблокированы заархивированные)
Нажмите, чтобы загрузить NibUnlocker
если вы хотите узнать немного больше, вы можете прочитать дополнительную информацию, которую я предоставил ниже в отношении Сиб и XIB формат:
Анатомия NXT Interface Builder:
квартира Сибs
плоский файл наконечника является сложным файлом для анализа, но это это не невозможно. Структура этих файлов-это просто список двоичных свойств apple (начинается с "bplist00"), и некоторые из его содержимого архивируются через NSKeyedArchiver. Поскольку Сиб форматируется как список свойств, это позволяет небольшой хак: Если вы на самом деле измените расширение квартиры Сиб для .плист, например.
ArchivedNib.nibдоArchivedNib.plistвы действительно сможете открыть его в Xcode, просмотрев его как список свойств, хотя не все значения будут показаны, потому что Xcode не знает, как отобразить некоторые значения (CFKeyedArchiverUID значения). При просмотре Сиб в качестве списка свойств вы, вероятно, получите несколько базовых свойств, таких как $version, $objects, $archiver и $top.Полезная Информация
A CFKeyedArchiverUID объект-это просто перенаправитель, в {value = xx}, значение индекс для элемента в массиве $objects (с начала массива). например.
<CFKeyedArchiverUID 0x60800002bc20 [0x7fffef6b8c30]>{value = 29}, value = 29, результатом будет 29-й элемент в массиве $object (просто помните, что массив начинается с 0). В Objective C вы можете получить это значение из CFKeyedArchiverUID с помощью этого метода:+ (NSUInteger)valueForKeyedArchiverUID:(id)keyedArchiverUID { void *uid = (__bridge void*)keyedArchiverUID; NSUInteger *valuePtr = uid+16; return *valuePtr;}(я узнал это сам, используя интернет, а позже я использовал бункер разборки NibUnlocker и я заметил в его исходном коде, он использует ту же технику, загрузив Сиб в NSDictionary и пройдя через все его связи, объекты и т. д.. и выписывает новый XIB)
как будто это помогло ;-)
Comments