質問: items[indexPath.row].title return cell } } ``` あと、なぜオーバーライドが必要? TableView -> UITableViewDataSource -> func tableView(_:cellForRowAt:) TableView -> UITableViewController -> ListViewController ListViewControllerが継承しているUITableViewControllerにはtableView(_:cellForRowAT:)メソッドはそもそも定義されていないはず。
回答: > > なぜ、tableView.dequeueReusableCell(withIdentifier:for:)と表記するのでしょう? > > > **インスタンスメソッド**について調べてください。 単純にdequeueReusableCell(withIdentifier:for:)と記述しただけは、ListViewControllerに定義されている(と理解される)メソッドを実行しようとします。 > > override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) > > なぜオーバーライドが必要? > > > func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) は protocol UITableViewDataSource が定義しています。 ビルドが通っているなら、ListViewControllerがUITableViewDataSourceを継承しているはずです。 protocolで定義しているメソッドをオーバーライドしているからoverrideの付与が必要になります。 protocolを継承してもメソッドをオーバーライドしないと、ビルドが通りません。