相关疑难解决方法(0)

如何调用super.super的方法?

我想调用一个超类的超类方法,而不会破坏继承链.像这样的东西:

+(id) alloc 
{
    return [super.super alloc];
}
Run Code Online (Sandbox Code Playgroud)

有没有办法实现这个目标?

不要混淆这里superclass讨论的方法提供的行为.


UPD:

几句话supersuperclass差异.

让我们说,我们有AClassSuperAClass.从他们的名字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)

在第一种情况下(使用超类),SuperAClassfoo方法将被调用.用于(使用超)第二种情况下,AClassfoo方法将被调用.

cocoa cocoa-touch objective-c ios

27
推荐指数
1
解决办法
1万
查看次数

标签 统计

cocoa ×1

cocoa-touch ×1

ios ×1

objective-c ×1