В чем разница между форматами файлов NIB и XIB Interface Builder?



в чем разница между nib и xib в файлах Interface Builder?

712   5  

5 ответов:

начиная с версии Interface Builder 3, новый формат файла (с расширением .xib) был добавлен, который функционально идентичен .перо, за исключением того, что оно хранится в плоском файле, что делает его более подходящим для хранения в системах контроля версий и обработки такими инструментами, как diff.

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

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)

как будто это помогло ;-)

также при компиляции проекта, .xib файл будет скомпилирован в nib.

функционально ничего, кроме xib является дружественным форматом управления версиями

Comments

    Ничего не найдено.