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原则)。您需要对库资源进行分叉,并根据您的需要对其进行微调。如果有意义,将您的更改返回到上游。