我是iOS开发的新手,并阅读过有关扩展程序的文章。但我找不到任何关于扩展和继承扩展的例子。
以SpreadsheetView为例。我想覆盖extension SpreadsheetView。
我发现我可以通过在我自己的.swift文件中创建另一个扩展来覆盖它:
extension SpreadsheetView {
public func scrollViewDidScroll(_ scrollView: UIScrollView) {
// custom code
}
}
但是,我也希望保留默认实现。如何从我的自定义函数中调用它? super.scrollViewDidScroll
或(self as SpreadsheetView).scrollViewDidScroll
不起作用。
当我回到基本并复制所有代码时。它没有允许。所以它不是我的选择:
' rowHeaderView'由于内部'而无法访问保护水平
答案 0 :(得分:1)
您无法覆盖扩展程序中的任何实现。扩展用于向现有类,结构,枚举或协议类型添加新功能。
如果要覆盖任何函数,则应覆盖该类,然后重写该方法。像这样的东西。
class MySpreadsheetView: SpreadsheetView {
override func scrollViewDidScroll(_ scrollView: UIScrollView) {
super.scrollViewDidScroll(scrollView)
//....
}
}