Я не могу решить «недопустимый наконечник, зарегистрированный для идентификатора (BNRItemCell)»

#ios #uitableview

#iOS #uitableview

Вопрос:

Просматриваю книгу Big Nerd Ranch iOS, и я на второй день пытаюсь решить эту проблему, и я схожу с ума — кто-нибудь может помочь?

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

2014-06-20 11:37:18.764 Homepwner [10388:60b] *** Завершение работы приложения из-за неперехваченного исключения ‘NSInternalInconsistencyException’, причина: ‘недопустимый наконечник, зарегистрированный для идентификатора (BNRItemCell) — наконечник должен содержать ровно один объект верхнего уровня, который должен быть экземпляром UITableViewCell’

Я подключил файл BNRItemCell.xib к соответствующему классу. После строки 57, где точка останова, происходит сбой:

пушистый котенок

=======================================================

tour de france

=======================================================

циклический

Я знаю, что это будет что-то настолько простое, что я буду пинать себя.

Любая помощь будет оценена по достоинству, спасибо!

Комментарии:

1. Не могли бы вы прислать мне проект?

2. что, если я хочу использовать один xib для нескольких ячеек?

Ответ №1:

Наблюдая за представлением дерева слева от IB, у вас есть UIView (второй элемент верхнего уровня! ) ниже UITableViewCell. Удалите его, и все будет в порядке!

Комментарии:

1. Ага! Да, что-то было: i.imgur.com/XWL21JM.png Спасибо вам!! Теперь я знаю, что делает этот просмотр дерева 🙂

2. @MABVT Если я не хочу удалять это представление, потому что мне нужно нарисовать его в реальной ячейке; Как я могу добиться такого поведения? На самом деле у меня есть два подвида, и мне нужно показать один в некоторой логике выполнения.

3. @msmq затем вам нужно загрузить наконечник «вручную» и просмотреть все элементы, которые у вас есть в файле, и отфильтровать требуемые. Вы делаете это с помощью NSArray *uiItems = [[NSBundle mainBundle] loadNibNamed:<name> owner:<owner> options:<options>]; . Затем массив содержит все элементы верхнего уровня, как показано в IB-дереве. Смотрите это: developer.apple.com/library/ios/documentation/UIKit/Reference /… : и это nathanhjones.com/2011/02/20 /… для того, чтобы его можно было использовать!

Ответ №2:

У меня была такая же проблема. Оказывается, я по ошибке добавил другое представление в файл .xib