Подтвердить что ты не робот

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

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

4b9b3361

Ответ 1

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

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

Ответ 2

XIB - это плоские файлы, а не как набор. Это облегчает работу систем управления SCM (управление источниками). Когда вы компилируете свое приложение, XIB скомпилируется в файл NIB для включения в ваше приложение.

Скомпилированный NIB, который включен в комплект приложения, больше не доступен для редактирования в Interface Builder и намного меньше эквивалентного XIB или старого файла NIB.

Ответ 3

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

Ответ 4

Файл XIB в основном является исходным документом файла NIB, XIB может почти всегда редактироваться в Xcode (если только они не являются устаревшим или коррумпированным). в то время как более новые NIB с сжимаются и неприменимы, более старые NIB - это пакеты, которые можно просмотреть с помощью Xcode, The Bundled NIB s содержат некоторые исходные/архивные файлы, которые включают designable.nib, который часто является просто переименованным файлом XIB.


NIB= N xt I nterface B uilder (NXT = NextStep = NS)

XIB= X ml I nterface B uilder


Хотя новые архивные файлы NIB недоступны для большинства приложений, включая Xcode, они все равно могут быть разблокированы. Я нашел это бесплатное приложение под названием NibUnlocker На CharlesSoft Веб-сайт, который может потенциально разобрать сжатый Nib и экспортирует его как документ XIB. Это приложение по-прежнему довольно ошибочно, но иногда оно очень точно на основе содержимого Nib.

(NibUnlocker - очень неточное имя, Nibs не заблокированы, они архивируются)


Нажмите, чтобы загрузить NibUnlocker


Если вы хотите узнать немного больше, вы можете прочитать дополнительную информацию, представленную ниже в отношении форматов NIB и XIB:

Nxt Interface Builder Анатомия:

Архивировано NIB s

A Сжатый файл NIB - это сложный файл для анализа, но это невозможно. Структура этих файлов основана на списке уплотненных свойств (начинается с "bplist00" ), а часть его содержимого архивируется через NSKeyedArchiver. Поскольку NIB отформатирован как список свойств, это позволяет сделать небольшой взлом: если вы действительно измените расширение Nib на .plist, например. ArchivedNib.nib до ArchivedNib.plist Фактически вы сможете открыть его в Xcode, рассматривая его как Список свойств. Когда вы просматриваете Nib как список свойств, вы, вероятно, получите несколько базовых свойств, таких как $version, $objects, $archiver и $top.

Полезные примечания

A Объект CFKeyedArchiverUID на самом деле является перенаправителем, в {value = xx} значение представляет собой смещение для элемента в массиве $objects от начала массива. например. <CFKeyedArchiverUID 0x60800002bc20 [0x7fffef6b8c30]>{value = 29}, value = 29, результатом будет 29-й элемент в массиве $object. В Objective C вы можете получить это значение из NSArray с помощью этого метода:

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

(я сам это понял, используя Интернет, а позже использовал Hopper, чтобы разобрать NibUnlocker, и я заметил в его исходном коде, он использует тот же метод, загружая NIB в NSDictionary и просматривая все его соединения, объекты и т.д. и выписывает новый XIB)

как если бы это помогло; -)

Ответ 5

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