gpt4 book ai didi

ios - 如何覆盖和继承 Swift 中的扩展?

转载 作者:可可西里 更新时间:2023-11-01 02:02:46 26 4
gpt4 key购买 nike

我是 iOS 开发新手,阅读过有关该扩展的文章。但是我找不到任何关于扩展和继承扩展的例子。

SpreadsheetView举个例子。我想覆盖 extension SpreadsheetView .

我发现我可以通过在我自己的 .swift 文件中创建另一个扩展来覆盖它:

extension SpreadsheetView {
public func scrollViewDidScroll(_ scrollView: UIScrollView) {
// custom code
}
}

但是,我也想保留默认实现。如何从我的自定义函数中调用它? super.scrollViewDidScroll(self as SpreadsheetView).scrollViewDidScroll 不起作用。

当我回到基础并复制所有代码时。它不允许。所以这对我来说不是一个选择:

'rowHeaderView' is inaccessible due to 'internal' protection level

最佳答案

您不能覆盖扩展中的任何实现。扩展用于向现有类、结构、枚举或协议(protocol)类型添加新功能。

如果你想重写任何函数,你应该重写类,然后重写方法。像这样的东西。

class MySpreadsheetView: SpreadsheetView {
override func scrollViewDidScroll(_ scrollView: UIScrollView) {
super.scrollViewDidScroll(scrollView)
//....
}
}

关于ios - 如何覆盖和继承 Swift 中的扩展?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45126054/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com