クラスは、プロトコルに準拠する前に親クラスから継承する必要があります。それを行うには主に2つの方法があります。
1つの方法は、クラスを一緒に継承NSObject
および準拠させるUITableViewDataSource
ことです。プロトコルの関数を変更する場合はoverride
、次のように、関数呼び出しの前にキーワードを追加する必要があります
class CustomDataSource : NSObject, UITableViewDataSource {
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "reuseIdentifier", for: indexPath)
// Configure the cell...
return cell
}
}
ただし、準拠するプロトコルが多く、各プロトコルに複数のデリゲート関数があるため、コードが煩雑になることがあります。この場合、を使用してプロトコル準拠コードをメインクラスから分離できextension
ますoverride
。拡張機能にキーワードを追加する必要はありません。したがって、上記のコードと同等のものは
class CustomDataSource : NSObject{
// Configure the object...
}
extension CustomDataSource: UITableViewDataSource {
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "reuseIdentifier", for: indexPath)
// Configure the cell...
return cell
}
}