Не удалось загрузить перо в комплекте на устройстве iPhone - PullRequest
25 голосов
/ 11 ноября 2010

Я пытаюсь протестировать приложение, которое разрабатываю на своем iPhone.Для этого я изменил цель с симулятора на устройство на Xcode.Приложение правильно загружено на устройство и работает.Отображается основной вид, но если я пытаюсь открыть дополнительный вид, приложение вылетает.

В журнале iPhone (я установил утилиту конфигурации iPhone, чтобы увидеть консоль [это единственный способ просмотреть журнал с iPhone?]) Я вижу эту ошибку:

Could not load NIB in bundle

Но на симуляторе все работает отлично.В чем дело?Есть идеи?

Ответы [ 16 ]

62 голосов
/ 01 апреля 2012

У меня была такая же проблема, и я исправил ее так:

  1. Open XCode Target
  2. Перейдите на вкладку «Этапы сборки»
  3. Нажмите на раздел «Копирование ресурсов комплекта»
  4. Нажмите +
  5. Добавить отсутствующий файл пера
22 голосов
/ 11 ноября 2010

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

Как называется твое xib?


или

Попробуйте удалить приложение из симулятора и установить его снова - на симуляторе может быть старый файл, оставшийся от предыдущего запуска приложения - вы вообще переименовали / переместили xib во время разработки?

18 голосов
/ 16 апреля 2011

У меня была похожая проблема, и я получал ту же ошибку. Оказывается, я использовал полное имя xib-файла на панели атрибутов в «NIB Name:»

Не используйте «SomeViewController.xib», просто используйте «SomeViewController» без расширения «.xib».

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

Вы можете попробовать эти вещи:

  1. Убедитесь, что дело верное
  2. Использовать имя файла xib без расширения ".xib"
  3. Удалите все - (тире) или другие специальные символы, используйте _ (подчеркивание)
  4. Удалите файл xib из проекта и добавьте обратно в проект Xcode
  5. Проверьте параметры сборки и убедитесь, что развертывание изменено для корректного SDK
9 голосов
/ 05 февраля 2011

У меня была такая же проблема при вызове initWithNibName:@"MyViewController"

Изменение вызова на initWithNibName:NSStringFromClass([MyViewController class]) сработало хорошо

5 голосов
/ 02 августа 2011

В моем случае, xib просто не копировался в пакет. Как только я добавил xib в шаг «Копирование комплекта ресурсов» для цели приложения, все прошло нормально.

3 голосов
/ 07 ноября 2012

Для меня проблема заключалась именно в том, что FreeAsInBeer сказал: перо почему-то отсутствовало в комплекте, тогда как оно было там раньше и работало должным образом в предыдущих версиях приложения.

Чтобы устранить проблему, я сделал следующее:

  1. Выберите проект в Навигаторе проектов.
  2. В настройках проекта выберите Фазы сборки .
  3. Развернуть Копировать ресурсы пакета .
  4. Прокрутите вниз (при необходимости) и нажмите кнопку + .
  5. В появившемся диалоговом окне нажмите кнопку Добавить другое ... .
  6. Найдите отсутствующий файл .XIB в файловой системе.
  7. Build and Run ... отсутствующий кончик должен появиться при запуске.

Это именно то, что сработало для меня, когда я получил это сообщение. Ваш пробег может отличаться, поскольку обстоятельства не всегда одинаковы для всех, но я надеюсь, что это поможет тому, кто столкнется с этой проблемой.

-Evan

3 голосов
/ 25 августа 2011

Мне наконец-то удалось решить эту проблему с помощью следующих двух шагов:

  1. В инспекторе файлов контроллера представлений удалите любую локализацию (только для тестирования)
  2. Убедитесь, что вы проверилиправильное целевое членство

Я не знаю, почему это работает на симуляторе: (

2 голосов
/ 23 мая 2013

Простая ошибка, которая может вызвать эту ошибку, заключается в попытке initWithNibName в импортированном viewController при использовании раскадровки, а не отдельных файлов Nib. Если это так, тогда просто инициализируйте контроллер вместо попытки инициализации с помощью nib, который не существует, или инициализируйте эти поля с помощью nil.

Если Storyboard и nib отсутствует, измените initWithNibName: bundle: просто на init ИЛИ initWithNibName: nil bundle: nil

2 голосов
/ 19 октября 2011

У меня было то же сообщение об ошибке.Однако моя проблема заключалась в том, что мои языковые настройки на телефоне были установлены на «Английский», а Регион на «Великобритания».Однако файл, который не удалось загрузить, был помещен в каталог de.lproj.Перемещение файла в корневой каталог решило это.

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