Как конвертировать nib / xib в объективный C-код? - PullRequest
3 голосов
/ 25 декабря 2009

Мне просто интересно, есть ли способ конвертировать nib / xib файл в код ojbective C? Я просто хочу найти код, эквивалентный файлу nib / xib (я пробовал nib2objc, кажется, результат не тот, что мне нужен).

На самом деле я хочу скомпилировать этот пример

http://developer.apple.com/iphone/library/samplecode/TableSearch/index.html

без nib / xib файла (я хочу точно так же, как и с оригиналом), есть идеи по этому поводу?

Ответы [ 4 ]

13 голосов
/ 25 декабря 2009

Выезд nib2objc :

nib2objc преобразует файлы NIB (или файлы XIB) в код Objective-C, включая все свойства каждого экземпляра, документированные вызовы конструктора, а также иерархию представления.

nib2objc yourfile.xib > code.m
7 голосов
/ 25 декабря 2009

В общем случае я думаю, что ответ - нет. Перья не являются кодом; это архивы сериализованных объектов. Итак, вы спрашиваете: «Учитывая граф произвольных сериализованных объектов, могу ли я сгенерировать некоторый исходный код, который может создать такой граф без использования сериализации?» Без специальной поддержки такого процесса во всех участвующих классах я не понимаю, как вы могли бы.

Вероятно, было бы более выгодно спросить о том, что вам на самом деле нужно сделать, а не об этом конкретном способе сделать что-либо.

1 голос
/ 28 мая 2010

Для всех здесь не должно быть никаких причин не использовать ответы типа nib / xib, позвольте мне привести конкретный пример в качестве контрапункта.

[iPhone OS 3.1.3, 3.2]

  1. Приложения для iPhone OS имеют ограниченный объем памяти для работы. Если вы используете слишком много, ваше приложение автоматически закрывается ОС.
  2. Конструктор интерфейса загружает изображения, на которые есть ссылки в nib / xib, в кэш с помощью [UIImage imageNamed ...], который использует память и не освобождает ее автоматически. У вас также нет возможности запросить освобождение этих изображений из этого общего кэша.
  3. Выложите несколько больших изображений в файлы nib / xib (т.е. фоны), в приложении с несколькими файлами nib / xib, и у вас очень быстро будет приложение, которое быстро сжимает память (3 МБ на полноразмерный фон png на iPad), что вы не можете контролировать выпуск. Если у вас есть какие-либо сомнения по этому поводу, проверьте документацию для [UIImage imageNamed] и выполните поиск в Google, чтобы убедиться, что именно это и используется.

Это случай, когда вы не используете xib / nib.

0 голосов
/ 17 июня 2013

Я думаю, что имеет смысл сделать это, если вы просто хотите создать отправную точку для представления, которое создается программным способом, который нелегок или невозможен для Interface Builder. Это также удобно, если вы хотите связать иерархию представления со статической библиотекой, чтобы она была полностью автономной. В идеале вы хотите использовать перья, если это возможно. Это облегчит интернационализацию. Однако вы можете по-прежнему поддерживать интернационализацию с помощью строкового файла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...