Ответ 1
Снимите флажок "Использовать автоспуск", выделенный на рисунке ниже. Xcode 4.5 позволяет это свойство по умолчанию для новых файлов nib, которые вы добавляете в свой проект. Если снять флажок автоотключения, проблема решена.
Я использую новый xcode 4.5, У меня есть эти строки кода на каком-либо контроллере представления:
DiscoverCell* cell=[table dequeueReusableCellWithIdentifier:@"DiscoverCell"];
if(cell==nil){
NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"DiscoverCell"
owner:self
options:nil];
cell = [nib objectAtIndex:0];
}
когда я запускаю приложение его бросание: Завершение приложения из-за неперехваченного исключения "NSInternalInconsistencyException", причина: "Данные NIB недействительны". на линии LoadNib, что это? этот xcode - это какой-то яблочный мусор?
Снимите флажок "Использовать автоспуск", выделенный на рисунке ниже. Xcode 4.5 позволяет это свойство по умолчанию для новых файлов nib, которые вы добавляете в свой проект. Если снять флажок автоотключения, проблема решена.
У меня была эта же проблема и исправлена ее, сняв флажок "Использовать автозапуск" на панели "Инспектор документов" в "Утилиты".
У меня просто была эта проблема и отследил ее до UIButton, у которого было задано поле Title Attributed in Attributes Inspector. Изменение этого на Plain устраняло проблему. Если я правильно помню, я добавил эту кнопку в последнюю версию Xcode и тогда имел проблемы с ней.
Для меня это была комбинация комментария Джейсона Коко и ответа tomgerhardt: мое приложение нацелено на iOS5, я обновился до Xcode 4.5 и создал новый NIB. По умолчанию этот целевой iOS6 вызывает сбои. Я установил это в iOS5 в окне инспектора файлов NIB.
Затем я получил ошибку компилятора, в которой говорилось, что использование Autolayout не поддерживается для iOS5, оказалось в Инспекторе документов, и моя проблема была исправлена.
Я использую Xcode 4.5 и iPhone simulator 5.0, и это та же самая ошибка, когда была показана первая таблица. Следуя советам "снять отметку с автоаудита", я получил его работу, переместив Document Versioning в iOS 5.0. (Выбранная раскладушка → вкладка "Идентификация файла" → "Документ конструктора интерфейса → " Версии документа ".) AutoLayout уже не выбран.
Итак, примерно через час, пытаясь понять это, я понял проблему. Это действительно то, что описано выше: убедитесь, что ваш .xib установлен в одну и ту же целевую версию (в данном случае, скорее всего, < 6.0), как то, что было написано вашим основным приложением, и снимите флажок "Использовать автозапуск" в параметрах для этот конкретный .xib.
Причина, по которой он будет работать в симуляторе, заключается в том, что на вашем симуляторе работает iOS6. При попытке использовать устройство со старым iOS это приведет к ошибке. Моя проблема заключалась в том, что я создавал пользовательский TableViewCell, который по умолчанию был предназначен для iOS 6 и был установлен флажок "Использовать автозапуск". Это было преступником для меня.
Надеюсь, я смогу спасти кого-то там от горя, с которым я столкнулся с этой ошибкой!
После отключения Auto-Layout для всех моих файлов .xib у меня все еще была ошибка. Это было связано с тем, что я использовал Text → Attributed для UILabel в файле .xib.
После установки на Plain ошибка исчезла.
Имя после "loadNibNamed:" должно быть именем файла nib (в навигаторе проекта в левой части экрана), иногда люди пишут "идентификатор ячейки", который записывает с самого начала в CellForRowAtIndexPath (статический NSString...).
Может быть, ваша проблема в этой небольшой ошибке?