UITableViewの使い方記事を見ているとUITableViewDataSourceとUITableViewDelegateは絶対に実装する事と書いてあります。
これらが具体的に何をするのかについての記事が見当たらないようなので、自分用メモとして残します。
誤っていたらご指摘お願いいたします。
UITableViewDataSourceって何?
UITableViewDataSourceはテーブルに表示するデータの管理をするもの
(TableViewはテーブルの表示の管理のみでデータの管理はしない)
テーブルにデータを表示するにはTableViewにUITableViewDataSourceプロトコルを実装する必要がある
UITableViewDataSourceプロトコルを実装する事で下記等ができるようになる
・テーブル内のセクションと行の数の取得
・テーブルの各行にセルを提供
・セクションのヘッダーとフッターにタイトルを付ける
・テーブルのインデックス
・データの変更や更新
・テーブル行の挿入や削除
UITableViewDelegateって何?
テーブル行のスワイプやその他のアクションに応答するもの
UITableViewDelegateを実装する事で下記などができるようになる
・行の内容をインデント
・行、ヘッダー、およびフッターのカスタムの高さの指定
・カスタムヘッダービューとフッタービューを作成および管理
UITableViewDataSourceとUITableViewDelegateは絶対に実装するようにと言われている理由
上述した通り、UITableViewDataSourceがなければセルやデータ(セル内に表示したい文字など)が表示できません
UITableViewDelegateがなければカスタマイズしたテーブルが作れません(データの表示だけであればUITableViewDelegateがなくとも実装可能ですが、カスタムする前提のテーブルを使う事が多いので必須と言われていると思います)
参考にした記事
https://developer.apple.com/documentation/uikit/uitableviewdatasource
https://developer.apple.com/documentation/uikit/uitableviewdelegate
https://qiita.com/kagemiku/items/22b74010365723c5c4fe