Ошибка с TableView и viewDidLoad

#tableview #swift3 #xcode8 #viewdidload

#просмотр таблицы #swift3 #xcode8 #viewdidload

Вопрос:

Я пытаюсь создать табличное представление с разделами. Пока все хорошо. Но когда я добавляю переопределение viewDidLoad сразу под структурой, я получаю сообщение об ошибке: Тип ‘ViewController’ не соответствует протоколу ‘UITableViewDataSource’. Если я удалю UITableViewDataSource, все пойдет наперекосяк…

Почему?

(Моя следующая контрольная точка — отредактировать эти разделы, щелкнув по каждой строке)

Это мой код

импорт UIKit

класс ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {

 // Creating a structure
struct Objects {
    var sectionName : String!
    var sectionObjects : [String]!
}
  

/Я бы вставил viewDidLoad здесь/

 var objectsArray =  [Objects(sectionName: "Section 01", sectionObjects: ["11", "12", "13", "14", "15"]),
                    Objects(sectionName: "Section 02", sectionObjects: ["21", "22", "23"]),
                    Objects(sectionName: "Section03", sectionObjects: ["31"]),
                    Objects(sectionName: "Section04", sectionObjects: ["41", "42", "43","44"])
                    ]

/// Determine the content of the cell: in this case the objectsArray
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

    let cell = UITableViewCell(style: UITableViewCellStyle.default, reuseIdentifier: "Cell")

    cell.textLabel?.text = objectsArray[indexPath.section].sectionObjects[indexPath.row]

    return cell

}

/// Determine the number of rows
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {

    return objectsArray[section].sectionObjects.count

}

/// Determine the number of sections
func numberOfSections(in tableView: UITableView) -> Int {

    return objectsArray.count

}

/// Determine the Title of the sections

func tableView(_ tableView: UITableView, titleForHeaderInSection section: Int) -> String? {

    return objectsArray[section].sectionName

}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}
  

}