클래스는 프로토콜을 따르기 전에 부모 클래스에서 상속해야합니다. 주로 두 가지 방법이 있습니다.
한 가지 방법은 클래스 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
}
}