调用超类方法

时间:2014-04-24 04:21:45

标签: objective-c

在Objective-C中,如何调用对象的超类方法?

例如,假设我有一个对象的实例" foo"。

"富"有一个被覆盖的方法。我不想调用这个覆盖方法。相反,我想在foo对象实例上调用原始方法。

你做不到:

据我所知,

[[instance super] super_method];。那我怎么能这样做呢?

我知道我可以为foo添加一个方法:

-(void) callsuper
{
    [super super_method];
}

并且做:

[foo callsuper];

还有其他方法吗?我真的不想创建一种方法来做到这一点。

1 个答案:

答案 0 :(得分:0)

关键字super会为您执行此操作。在-init方法中很常见。这是一个例子。

- (id)init {
    if (self = [super init]) {
        // custom initialization
    }
    return self;
}

在这种情况下,super关键字用于调用此类' -init方法的超类实现。 super可用于您的超类实现的任何方法。