Не удалось загрузить NIB в комплекте - PullRequest
92 голосов
/ 17 марта 2011

Я пытаюсь интегрировать Janrain Engage как пользовательский модуль с Appcelerator Titanium. Я создал пример модуля и перетащил папку JREngage в пример модуля xcodeproj, как указано в документации Jainrain.

Теперь я даю команду сборки этому проекту, затем выполняю ./build.py и, наконец, я выполняю команду titanium run. Он запускает приложение в симуляторе с пустым экраном и сразу вылетает, выдавая следующую ошибку.

Завершение работы приложения из-за необработанного исключения «NSInternalInconsistencyException», причина: «Не удалось загрузить NIB в комплекте:« NSBundle </ Users / abhilash / Библиотека / Поддержка приложений / Симулятор iPhone / 4.2 / Applications / CA167346-4091-4E16-B841 -955D1D391713 / test.app> (загружен) 'с именем' JRProvidersController ''

Почему может возникнуть эта ошибка?

Ответы [ 31 ]

194 голосов
/ 07 марта 2012

Перейдите к свойствам .xib-файлов в инспекторе файлов , свойство «Целевое членство» в поле выбора, затем ваш xib-файл был связан с вашей целью

44 голосов
/ 05 ноября 2012

В Targets -> Build Phases

Убедитесь, что .xib добавлен в Copy Bundle Resources, если его нет, добавьте .xib файл.

22 голосов
/ 23 июля 2012

попробуй выяснить все

XXXController = [[XXXControlloer alloc] initWithNibName:@"XXXController" bundle:nil];

в вашем коде и убедитесь, что XXXController написано правильно

15 голосов
/ 17 июня 2011

У меня возникла та же проблема (исключение «Не удалось загрузить NIB в комплекте: ..») после обновления моего кода xcode с 3.2 до 4.02.Принимая во внимание, что развертывание моего приложения с Xcode 3.2 работало нормально, оно завершается с xcode 4, вызывая исключение, упомянутое выше - но только когда я пытался развернуть его на IOS Simulator (v.4.2).Нацеливание на устройство IOS (v.4.1) также осуществлялось с помощью Xcode 4.

Оказалось (после нескольких часов отчаянных болтовни), что причиной была почти «скрытая» настройка в .xib-файле:

Посетите свойства файлов .xib в инспекторе файлов: для всех файлов .xib для свойства «Расположение» было установлено значение «Относительно группы».Я изменил его на «Относительно проекта» и вуаля: все .xib-файлы теперь правильно загружаются в симуляторе IOS!

Я понятия не имею, что является причиной этого странного поведения Xcode4, но, возможно, стоит сделатьпопытка?

12 голосов
/ 26 февраля 2014

В моем случае это было очень странно (используйте раскадровку): По какой-то причине оно изменилось с "Основное имя файла основной раскадровки" на "Основное имя файла основного пера" в списке.

Изменение обратно на «Основное имя файла основной раскадровки» (UIMainStoryboardFile) решило проблему

8 голосов
/ 17 марта 2011

ошибка означает, что нет файла .xib с именем "JRProvidersController". перепроверьте, существует ли JRProvidersController.xib.

вы загрузите .xib file с

controller = [[JRProvidersController alloc] initWithNibName:@"JRProvidersController" bundle:nil];
6 голосов
/ 06 августа 2011

Поскольку целью сборки является одно из моих устройств iOS, я щелкнул правой кнопкой мыши файл Product (xyzw.app) и выбрал всплывающий элемент «Показать в Finder».Он открыл окно с xyzw.app внутри;Я открыл пакет, используя Показать содержимое пакета, и увидел все ожидаемые файлы, кроме одного файла, на который он жаловался, с прописной буквой I вместо строчной буквы i в имени (zoomieVIew.nib вместо zoomieView.nib).Я заметил заглавную букву I в имени файла XIB, изменил его и перестроил;очевидно, Xcode оставил сгенерированное имя .nib таким, каким оно было.Я удалил zoomieVIew.nib в связке, перестроил, и Xcode должным образом воссоздал файл как zoomieView.nib.Приложение начало работать на устройстве.

6 голосов
/ 18 мая 2016

Используя пользовательский вид Swift в контроллере представления Objective C (да, даже после импорта файла <<PROJECT NAME>>-Swift.h), я попытался загрузить перо, используя:

MyCustomView *customView = [[[NSBundle mainBundle] loadNibNamed:NSStringFromClass([MyCustomView class]) owner:self options:nil] objectAtIndex:0];

... но NSStringFromClass([MyCustomView class]) возвращает <<PROJECT NAME>>.MyCustomView и загрузка не выполняется. TL; DR Все работало хорошо, загружая перо, используя строковый литерал:

MyCustomView *customView = [[[NSBundle mainBundle] loadNibNamed:@"MyCustomView" owner:self options:nil] objectAtIndex:0];
5 голосов
/ 04 апреля 2016

У меня была проблема с раскадровкой, и перо называлось что-то вроде 'bKD-J3-fhr-view-ZSR-8m-2da'.

Это было потому, что я пытался добавить подпредставление к self.view в init контроллера представления (с помощьюCoder). Self.view еще не существует.

Переместил его в viewDidLoad и все лучше!

4 голосов
/ 19 июня 2014

Посмотрите на проект

Target -> Buid Phases -> Copy Bundle Resources

Вы найдете ваш xib / storyborad с красным цветом.

Просто удалите его. Также удалите все ссылки на отсутствующий файлиз проекта.

Теперь перетащите этот файл раскадровки / xib снова в Copy Bundle Resources. Он по-прежнему покажет вам файл красного цвета, но не беспокойтесь об этом.

Просто очистите и соберите проект.

Теперь ваш проект снова будет успешно запущен !!

...