Я хочу вызвать метод суперкласса суперкласса, не нарушая цепочку наследования. Примерно так:
+(id) alloc
{
return [super.super alloc];
}
Есть ли способ добиться этого?
Не путайте с предложением поведения методом суперкласса
, обсуждаемым здесь .
UPD:
] Несколько слов о различиях суперкласса
и суперкласса
.
Допустим, у нас есть AClass
и SuperAClass
. Как следует из их названий, AClass
наследует SuperAClass
. Каждый из них имеет реализацию метода - (void) foo;
AClass
реализует один из следующих методов класса:
1. суперкласс:
+(id) alloc {
return [[self superclass] alloc];
}
2. super:
+(id) alloc {
return [super alloc];
}
Теперь предположим, что эти 2 строки кода:
Во втором случае (с использованием super) будет вызван метод AClass
foo
.