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.

Edit
Report