У меня есть пользовательский UIView, MyView, с несколькими табличными представлениями в нем - tv1 и tv2 - оба добавлены программно.ViewController как делегат табличного представления пользовательского вида
У меня есть пользовательский UIViewController, MyController, который создает экземпляр MyView для loadView.
Моя цель следующая. myView должен быть источником данных и делегировать для myView.tv1, так как он не касается моей модели данных и является статичным.
myController должен быть делегатом myView.tv2, поскольку его содержимое будет зависеть от источника данных.
Я добавил следующее к каждому заголовку:
@interface MyController : UIViewController <UITableViewDelegate, UITableViewDataSource>
@interface MyView : UIView <UITableViewDelegate, UITableViewDataSource>
и добавляю к каждому необходимым методам делегата.
В INIT MyView, я добавить, что представления таблиц и установить делегат первого в себя:
tv1 = [[UITableView alloc] initWithFrame:frame1 style:UITableViewStyleGrouped];
tv1.delegate = self;
tv1.datasource = self;
tv2 = [[UITableView alloc] initWithFrame:frame2 style:UITableViewStyleGrouped];
И в моем контроллере я подключить второй TableView:
- (void)loadView{
self.view = [[MyView alloc] initWithFrame:myFrame];
[(MyView *)self.view tv2].delegate = self;
[(MyView *)self.view tv2].dataSource = self;
}
Когда я запускаю это, я получаю полный беспорядок ошибок времени выполнения. Иногда он жалуется на пейджинговый контроль, в других случаях NSCFArray, в противном случае текст вообще отсутствует. Он всегда падает.
Я определил, что он устанавливает источник данных, который вызывает проблему, а не делегат. Если я прокомментирую строку источника данных в laodView, она работает нормально (но без содержания, конечно).
Что может привести к тому, что каждый раз я буду испытывать другую ошибку времени выполнения, и где я могу ошибиться?
Получение сообщений об ошибках с ошибками, как правило (по моему опыту) имеет какое-то отношение к памяти. Вы пытались комментировать реализацию одного из табличных представлений и пытались просто заставить их работать 1 за раз? Если вы можете сузить его до тех пор, пока проблема с таблицей (или и тем, иная), это поможет разобраться в этом. – WendiKidd
В дополнение к комментарию от @WendiKidd, смотрите, помогает ли статический анализатор. – Danra
Спасибо. Я вижу много «[ numberOfSectionsInTableView:]: непризнанный селектор отправил сообщения, где пусто - __NSCFType, NCSFArray и т. Д. Я не уверен, с чего начать, поскольку я использую ARC. –