Uma classe deve herdar de uma classe pai antes de estar em conformidade com o protocolo. Existem principalmente duas maneiras de fazer isso.
Uma maneira é herdar NSObject
e conformar a classe com a classe UITableViewDataSource
. Agora, se você deseja modificar as funções no protocolo, é necessário adicionar a palavra-chave override
antes da chamada da função, como esta
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
}
}
No entanto, isso às vezes deixa seu código confuso, pois você pode ter muitos protocolos para conformidade e cada protocolo pode ter várias funções de delegação. Nessa situação, você pode separar o código em conformidade com o protocolo da classe principal usando extension
e não precisa adicionar override
palavras-chave na extensão. Portanto, o equivalente ao código acima será
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
}
}