I want to call a method of super class of a super class, without breaking the inheritance chain. Something like this:
+(id) alloc
{
return [super.super alloc];
}
Is there a way to achieve this ?
Do not confuse with behavior offering by superclass
method, discussed here.
UPD:
A few words about super
and superclass
differences.
Lets say, we have AClass
and SuperAClass
. As follows from their names AClass
inherits SuperAClass
. Each of them has an implementation of a method -(void) foo;
AClass
implements one of the following class methods:
1. superclass:
+(id) alloc {
return [[self superclass] alloc];
}
2. super:
+(id) alloc {
return [super alloc];
}
Now, suppose these 2 lines of code:
AClass *AClassInstance = [AClass alloc];
[AClassInstance foo];
In first case (using superclass), SuperAClass
's foo
method will be called.
For the second case (using super), AClass
's foo
method will be called.
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…