Використовуючи XCode 4.5 та iOS 6, я розробляю додаток із простим поданням таблиці із спеціальними клітинками. Я робив це сто разів у iOS 5 і нижче, але чомусь нова система автоматичного компонування доставляє мені багато проблем.
Я налаштував свій огляд таблиці та прототип комірки в IB, додав підпогляди та з'єднав їх як IBOutlets, а потім налаштував мій делегат та dataSource. Однак тепер, коли перша комірка отримана cellForRowAtIndexPath
, я отримую таку помилку:
*** Невдача ствердження в - [ShopCell layoutSublayersOfLayer:], /SourceCache/UIKit_Sim/UIKit-2372/UIView.m:5776
*** Закінчення програми через невиконаний виняток "NSInternalInconsistencyException", причина: "Автоматична розмітка все-таки потрібна після виконання -layoutSubviews. Реалізація ShopCell -layoutSubviews потребує виклику super. '
Я не реалізував метод -layoutSubviews у своїй підкласовій комірці (ShopCell), і навіть коли я намагаюся це зробити і додаю супервиклик, як це підказує, я все одно отримую ту саму помилку. Якщо я видаляю підвід з осередку в IB і замінюю його на стандартний UITableViewCell, все працює так, як очікувалося, хоча, звичайно, я не маю даних у своїх клітинах.
Я майже впевнений, що чогось простого мені не вистачає, але не можу знайти жодної документації чи посібників, які б підказували, що я зробив не так. Будь-яка допомога буде вдячна.
Редагування: Просто спробували змінити його на UITableViewCell у IB та залишити всі підпогляди на місці, як і раніше однакова помилка.
lldb [[UIWindow keyWindow] _autoLayoutTrace]
в області налагодження, якщо використовується автоматичне розташування.