Ios Swift中super的超类调用方法
可以调用超类的超类的方法吗 比如:Ios Swift中super的超类调用方法,ios,swift,Ios,Swift,可以调用超类的超类的方法吗 比如: class A: UIViewController { ... } class B: A { required init(coder decoder: NSCoder!) { // I want this to be the UIViewcontroller's implementation super.super.init(coder: decoder) // ... } } 任何OOP语言
class A: UIViewController { ... }
class B: A {
required init(coder decoder: NSCoder!) {
// I want this to be the UIViewcontroller's implementation
super.super.init(coder: decoder)
// ...
}
}
任何OOP语言都会拒绝您访问继承层次结构,而不是直接超类或封装原则被破坏。此外,您将有接近100%的机会打破超类内部逻辑 因此,这是不可能的(至少在任何正常情况下)
但考虑到这一点,我会为你真正的问题提出其他解决方案 。。。基本上,我正试图想出一个解决办法
SLKTextViewController
是一个来自开源库(您知道)的类,要以库的公共接口无法实现的方式修改其行为,您可以分叉库,根据需要修改它,并可能将一些更改返回到上游(贡献一份力量).任何OOP语言都会拒绝您访问继承层次结构,除非直接超类或封装原则被破坏。此外,您将有接近100%的机会打破超类内部逻辑
因此,这是不可能的(至少在任何正常情况下)
但考虑到这一点,我会为你真正的问题提出其他解决方案 。。。基本上,我正试图想出一个解决办法
SLKTextViewController
是一个来自开源库(您知道)的类,要以库的公共接口无法实现的方式修改其行为,您可以分叉库,根据需要修改它,并可能将一些更改返回到上游(贡献一份力量).为什么要调用超类的超类的方法?我在这里嗅到了一种气味。嗯,我喜欢XY引用=)。我正在尝试另一种方法来解决你刚才提到的另一个问题。基本上我需要破解一个第三方类,这样我就可以调用UIViewController
init.@mitulmarsonia你能告诉我怎么做吗?(super.super.init(…)
不编译)这是没有意义的(如果类A只有super.init),您试图以错误的方式攻击开源库(这将违反OOP原则)。您需要对库资源进行分叉,并根据您的需要对其进行微调。如果有意义,将更改返回到上游。为什么要调用超类的超类的方法?我在这里嗅到了一种气味。嗯,我喜欢XY引用=)。我正在尝试另一种方法来解决你刚才提到的另一个问题。基本上我需要破解一个第三方类,这样我就可以调用UIViewController
init.@mitulmarsonia你能告诉我怎么做吗?(super.super.init(…)
不编译)这是没有意义的(如果类A只有super.init),您试图以错误的方式攻击开源库(这将违反OOP原则)。您需要对库资源进行分叉,并根据您的需要对其进行微调。如果有意义,将您的更改返回到上游。