在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/