Цель c наследование / путаница протокола: UITableViewController - PullRequest
0 голосов
/ 07 апреля 2011

Прямо сейчас я пытаюсь обернуть голову вокруг Objective C и XCode.Я играю с UITableView и у меня возникают проблемы с разделением понятий

  • UITableViewController
  • UITableViewDelegate
  • UITableViewDataSource

Я знаком с шаблоном MVC, я узнал из документов Apple Developer Docs, что их фреймворки используют делегаты для «специализации» классов без подклассов, а класс источника данных определяет, как отобразить данные из модели в представление (пожалуйста, исправьте меня, еслиЯ не прав).

Когда я создал TableViewController, выбрав Новый файл ..> Класс касания Cocoa> Подкласс UIViewController (проверка подкласса UITableViewController) Я был озадачен, увидев, что шаблон включенвсе функции из UITableViewDelegate и UITableViewDataSource без указания в файле заголовка, что TableViewController реализует эти протоколы.В документации для UITableViewController говорится, что он «соответствует UITableViewDelegate и UITableViewDataSource».Означает ли это, что он реализует эти протоколы?

Итак, мой вопрос: является ли UITableViewController простым вспомогательным классом, объединяющим UITableViewDelegate и UITableViewDataSource, или я что-то упустил?И нужен ли мне UITableViewController, если я предоставляю отдельные UITableViewDelegate и UITableViewDataSource?

Спасибо!

1 Ответ

1 голос
/ 07 апреля 2011

UITableViewController - это контроллер, предварительно сконфигурированный с UITableView и установленный в качестве делегата табличного представления и источника данных.

Так что да, это довольно удобный класс.

Вам не нужно его использовать, особенно если вы предоставляете свой собственный источник данных и делегата.

...