Не удалось загрузить NIB в пакет с помощью раскадровки

В последней версии iOS 8.3 я получаю эту ошибку при запуске одного из своих приложений:

Завершение работы приложения из-за необработанного исключения "NSInternalInconsistencyException", причина: "Не удалось загрузить NIB в комплекте: "NSBundle

В приложении есть 2 раскадровки, одна для iPhone (работает нормально), а другая для iPad (вылетает).

Я пробовал предложения этой темы безрезультатно: Xcode 6.3: Не удалось загрузить NIB в комплекте

В моем случае я использую StoryBoards, и у меня нет флага «Использовать классы размеров». До iOS 8.2 приложение работало нормально.

Это баги iOS 8.3? Кто-нибудь нашел решение? Спасибо!

РЕДАКТИРОВАТЬ: Если я использую раскадровку iPad на iPhone и раскадровку iPhone на iPad, они работают! Я также пытался переименовать раскадровки, но ничего не изменилось.

РЕДАКТИРОВАТЬ 2: SplitViewController в качестве контроллера начального представления вызывает сбой! Если я перемещаю начальный контроллер представления на другой контроллер представления, приложение работает!

РЕДАКТИРОВАТЬ 3: Некоторые новости: проблема вызвана MasterViewController моего SplitViewController. Я использую TabBarController в качестве MasterViewController, и он падает с iOS 8.3. Если я изменю MasterViewController на другое представление, приложение будет работать.


person Paolo Crociati    schedule 22.04.2015    source источник


Ответы (3)


Если вы сделали это программно, измените ~ на _ в имени xib и явно укажите суффикс при программной загрузке пакета. Надеюсь, это может вам помочь.

person user0321    schedule 24.04.2015
comment
Спасибо, но я использую раскадровку, а не xib. Я также пытался переименовать раскадровку, но она все еще не работает. - person Paolo Crociati; 24.04.2015

Проблема была вызвана SplitViewController с TabBarController в качестве MasterViewController. Это вызывает сбой в iOS 8.3. Я заменил TabBarController кнопками, и теперь приложение работает.

Я надеюсь, что эта информация может помочь кому-то.

person Paolo Crociati    schedule 26.04.2015

Я возвращал ноль в требуемом методе init?

required init?(coder decoder: NSCoder) {
    return nil
}

потому что я думал, что будет вызываться только метод init(frame:). Перемещение кода инициализации в viewDidMoveToWindow и удаление обоих методов инициализации решило проблему.

person jvarela    schedule 23.11.2019