我所知道的是:Objective-c 允许我们通过以下方式将方法调用转发给它的父类(super class) [ super 方法] 但是我想将调用转发给 super.super;跳过直接父类(super class)。
在 C++ 中,我们可以通过类型转换 ((GrandSuper*)object).method() 轻松地做到这些。
他们是否在 objective-c 中做了同样的规定
最佳答案
这样做可能不是一个好主意,尽管这是可能的。您可能想要想出更好的方法来实现您想要做的任何事情。
假设您有三个类:Cat
继承自 Mammal
继承自 Animal
。
如果你在方法-[Cat makeNoise]
中,你可以跳过-[Mammal makeNoise]
并调用-[Animal makeNoise]
像这样:
-(void) makeNoise;
{
void(*animalMakeNoiseImp)(id,SEL) = [Animal instanceMethodForSelector:@selector(makeNoise)];
animalMakeNoiseImp(self, _cmd);
}
关于c++ - 在 Objective-C 中,如何将方法转发给特定的父类(super class),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3210178/