Использование файлов XIB / NIB, содержащихся в загруженных пакетах на iOS - PullRequest
1 голос
/ 08 января 2012

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

У меня есть приложение в стиле журнала, которое загружает данные для каждого выпуска в виде упакованного пакета.

После загрузки и распаковки приложение успешно обращается к различным файлам, содержащимся в комплекте, как и ожидалось. К ним относятся JSON, PNG, JPG, видео и т. Д.

Однако я также включил файл XIB, который содержит физический макет содержимого, в серию UIViews, и именно этот файл я не могу использовать.

Файл присутствует, но когда я пытаюсь загрузить его, используя:

UIViewController *controller = [[UIViewController alloc] initWithNibName: @"ViewController" bundle: assetBundle];

Я получаю следующую ошибку:

Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Could not load NIB in bundle: 'NSBundle </var/mobile/Applications/C6718DB8-0C0F-4D38-84E6-55C145279957/Documents/asset-4.bundle> (not yet loaded)' with name 'ViewController''

Теперь, это ограничение iOS, запрещающее доступ к XIB из загруженных пакетов, или какая-то ошибка, которую я совершаю, вызывая XIB для использования?

Однако я не могу найти какого-либо явного запрета на использование выбранных пакетов.

1 Ответ

9 голосов
/ 08 января 2012

Я не уверен, что вы можете «легально» сойти с рук. Но проблема, вероятно, заключается в том, что вместо скомпилированной версии вместо 'nib' вы добавляете 'xib'.

Вы можете сделать это вручную из командной строки с помощью прилагаемой программы ibtool.

ibtool --errors --warnings --output-format human-readable-text --compile ${OUTPUT_NAME} ${INPUT_NAME}

Затем вы поместите скомпилированный файл .nib в пакет и загрузите, как пытались.

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