我想调用一个超类的超类方法,而不会破坏继承链.像这样的东西:
+(id) alloc
{
return [super.super alloc];
}
Run Code Online (Sandbox Code Playgroud)
有没有办法实现这个目标?
不要混淆这里superclass讨论的方法提供的行为.
UPD:
几句话super和superclass差异.
让我们说,我们有AClass和SuperAClass.从他们的名字AClass继承如下SuperAClass.他们每个人都有一个方法的实现-(void) foo;
AClass实现的一个下列类别方法:
超类:
+(id) alloc {
return [[self superclass] alloc];
}
Run Code Online (Sandbox Code Playgroud)
超级:
+(id) alloc {
return [super alloc];
}
Run Code Online (Sandbox Code Playgroud)
现在,假设这两行代码:
AClass *AClassInstance = [AClass alloc];
[AClassInstance foo];
Run Code Online (Sandbox Code Playgroud)
在第一种情况下(使用超类),SuperAClass的foo方法将被调用.用于(使用超)第二种情况下,AClass的foo方法将被调用.