Sebuah kelas harus mewarisi dari kelas induk sebelum menyesuaikan dengan protokol. Terutama ada dua cara untuk melakukannya.
Salah satu caranya adalah dengan membuat kelas Anda mewarisi NSObject
dan menyesuaikan diri dengan UITableViewDataSource
kebersamaan. Sekarang jika Anda ingin mengubah fungsi dalam protokol, Anda perlu menambahkan kata kunci override
sebelum pemanggilan fungsi, seperti ini
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
}
}
Namun ini terkadang membuat kode Anda berantakan karena Anda mungkin memiliki banyak protokol yang harus dipatuhi dan setiap protokol mungkin memiliki beberapa fungsi delegasi. Dalam situasi ini, Anda dapat memisahkan protokol yang menyesuaikan kode dari kelas utama dengan menggunakan extension
, dan Anda tidak perlu menambahkan override
kata kunci dalam ekstensi. Jadi akan sama dengan kode di atas
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
}
}