Просто поиграйте с некоторым примером кода и столкнитесь с неожиданной проблемой с UITableViewDataSource.
Мое тестовое приложение - это базовый шаблон iPhone "Панель навигации" для отображения списка.Я добавил подкласс NSObject для реализации UITableViewDataSource, встроил этот класс в RootViewController.xib и подключил его к выходу источника данных TableView.
Приложение запускается нормально.DataSource инициализируется, а табличное представление заполняется первыми 10 строками.Журнал:
2011-05-11 10:20:03.367 JustAList[10562:207] JALMainViewDataSource init
2011-05-11 10:20:03.375 JustAList[10562:207] cellForRowAtIndexPath <JALMainViewDataSource: 0x5d23730>
2011-05-11 10:20:03.378 JustAList[10562:207] cellForRowAtIndexPath <JALMainViewDataSource: 0x5d23730>
2011-05-11 10:20:03.380 JustAList[10562:207] cellForRowAtIndexPath <JALMainViewDataSource: 0x5d23730>
2011-05-11 10:20:03.381 JustAList[10562:207] cellForRowAtIndexPath <JALMainViewDataSource: 0x5d23730>
2011-05-11 10:20:03.383 JustAList[10562:207] cellForRowAtIndexPath <JALMainViewDataSource: 0x5d23730>
2011-05-11 10:20:03.384 JustAList[10562:207] cellForRowAtIndexPath <JALMainViewDataSource: 0x5d23730>
2011-05-11 10:20:03.384 JustAList[10562:207] cellForRowAtIndexPath <JALMainViewDataSource: 0x5d23730>
2011-05-11 10:20:03.385 JustAList[10562:207] cellForRowAtIndexPath <JALMainViewDataSource: 0x5d23730>
2011-05-11 10:20:03.385 JustAList[10562:207] cellForRowAtIndexPath <JALMainViewDataSource: 0x5d23730>
2011-05-11 10:20:03.386 JustAList[10562:207] cellForRowAtIndexPath <JALMainViewDataSource: 0x5d23730>
Как только я прокручиваюсь (т. Е. Требуется новая ячейка), приложение вылетает:
2011-05-11 10:20:06.249 JustAList[10562:207] -[__NSCFTimer tableView:cellForRowAtIndexPath:]: unrecognized selector sent to instance 0x5d23730
2011-05-11 10:20:06.379 JustAList[10562:207] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFTimer tableView:cellForRowAtIndexPath:]: unrecognized selector sent to instance 0x5d23730'
Это просто вызывается cellForRowAtIndexPath 10 раз подряд без проблем, теперьтам написано: нераспознанный селектор?
Возможно, это связано с тем, как я инициализирую (т.е. неявно из nib)?Возможно это преждевременно выпущено?Хм ... есть идеи, чтобы проверить, но хотел бы сначала опубликовать вопрос здесь, прежде чем тратить слишком много времени (на самом деле я собирался попробовать что-то совершенно другое, не ожидал этой проблемы!).
Надеюсь, кто-то можетПомогите?Ура!