Почему мой класс Cocoa Touch не может зарегистрировать методы протокола UITableViewDataSource для обновления табличного представления раскадровки?

#ios #swift #uitableview #cocoa-touch

Вопрос:

Я хотел попробовать поработать с Cocoa Touch для создания табличного представления, но возникли проблемы. После того, как я создам файл UITableViewController и прикреплю его к пользовательскому классу представления таблицы раскадровки, я ожидал, что смогу увидеть обновление представления таблицы, реализовав методы протокола. Я вижу только начальное состояние представления таблицы. Я могу изменить цвет фона, но я не могу изменить количество строк. Я прикреплю свой код ниже и изображение, отображающее мой пользовательский класс контроллера идентификатора повторного использования/представления таблицы в раскадровке. Пожалуйста, но я борюсь с этим. Есть какие-нибудь рекомендации?

 import UIKit  class TableViewController: UITableViewController {  override func viewDidLoad() {  super.viewDidLoad()   }  // MARK: - Table view data source  override func numberOfSections(in tableView: UITableView) -gt; Int {    return 0 }  override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -gt; Int {    return 3 }  override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -gt; UITableViewCell {  let cell = tableView.dequeueReusableCell(withIdentifier: "cell123", for: indexPath)    cell.textLabel?.text = "Hello"  return cell   } }  

Файл раскадровки

Ответ №1:

Здесь:

 override func numberOfSections(in tableView: UITableView) -gt; Int {    return 0 }  

Вы возвращаете нулевые разделы, поэтому в таблице не отображаются никакие разделы (или ячейки).

Измените это, чтобы вернуть хотя бы один раздел:

 override func numberOfSections(in tableView: UITableView) -gt; Int {    return 1 }  

Комментарии:

1. Спасибо, это работает. Я полностью провалил это дело.