#ios #uitableview
#iOS #uitableview
Вопрос:
Просматриваю книгу Big Nerd Ranch iOS, и я на второй день пытаюсь решить эту проблему, и я схожу с ума — кто-нибудь может помочь?
Я получаю следующее сообщение об ошибке:
2014-06-20 11:37:18.764 Homepwner [10388:60b] *** Завершение работы приложения из-за неперехваченного исключения ‘NSInternalInconsistencyException’, причина: ‘недопустимый наконечник, зарегистрированный для идентификатора (BNRItemCell) — наконечник должен содержать ровно один объект верхнего уровня, который должен быть экземпляром UITableViewCell’
Я подключил файл BNRItemCell.xib к соответствующему классу. После строки 57, где точка останова, происходит сбой:
=======================================================
=======================================================
Я знаю, что это будет что-то настолько простое, что я буду пинать себя.
Любая помощь будет оценена по достоинству, спасибо!
Комментарии:
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