У меня есть UITableView
, который перетаскивается в UIViewController
и класс NSObject
. Этот класс NSObject
должен служить делегатом и источником данных для представления таблицы.NSObject как делегат для UITableView
Я попытался создать экземпляр NSObject и соответствующий делегат и источник данных для представления таблицы. Datasource работает нормально. Но cellForRowAtIndexPath:
никогда не будет вызван, и все, что я получаю, это EXC_BAD ACCESS
, и приложение просто останавливается прямо там. Но когда я перетаскиваю объект в нижнюю область UIViewController
и давая ему имя класса и устанавливая делегат и источник данных, все работает хорошо и отображается UITableView
.
Я не знаю, почему это странное поведение. Я сделал это в viewdidload класса viewcontroller.
customnsobject *custom=[customnsobject alloc]init];
tableview.delegate=custom;
tableview.datasource=custom;
Вам нужно будет показать какой-то код, так как его трудно понять/понять, не видя. – Tim
Возможно, у вас есть локальный экземпляр подкласса 'NSObject', который освобождается. Показать код из viewController, где вы создаете DataSource. – execv
Если вы не держите ссылку на «custom» в этом случае, то в конце метода здесь он будет освобожден, поскольку и он «делегирует», и «источник данных» содержит только слабые ссылки. – darren102