在Swift中,您可以创建继承:

class A {

}

class B:A {

}

在此示例中,B继承自A。如果我在B内创建一个函数,是否有办法获得对其父类(super class)A的引用?我当时在想这样的事情:
self.super

或者
self.super()

或者
self.parent

我尝试了所有这些,但没有一个对我有用。有谁知道如何获得对父类(super class)的引用?

最佳答案

您需要导入Objective-C运行时,然后可以使用class_getSuperclass()

import ObjectiveC

class A {}

class B:A {
    func mySuper() -> AnyClass {
        return class_getSuperclass(self.dynamicType)
    }
}

B().mySuper() // A.Type

除调试和日志记录外,将其作为一个好主意是极不可能的。即使那样,它也非常不敏捷,您在追求它之前应该深刻地思考您的问题。即使像这样子类化也很不像Swift。在纯Swift中,协议(protocol)和扩展几乎总是比继承更好的解决方案(并且无需继承,就不必担心父类(super class))。

关于ios - 如何在Swift中获得对父/父类(super class)的引用?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33404588/

10-10 06:39