在Objective-C中,如何调用对象的超类方法?
例如,假设我有一个对象的实例" foo"。
"富"有一个被覆盖的方法。我不想调用这个覆盖方法。相反,我想在foo对象实例上调用原始方法。
你做不到:
据我所知, [[instance super] super_method];
。那我怎么能这样做呢?
我知道我可以为foo添加一个方法:
-(void) callsuper
{
[super super_method];
}
并且做:
[foo callsuper];
还有其他方法吗?我真的不想创建一种方法来做到这一点。
答案 0 :(得分:0)
关键字super
会为您执行此操作。在-init
方法中很常见。这是一个例子。
- (id)init {
if (self = [super init]) {
// custom initialization
}
return self;
}
在这种情况下,super
关键字用于调用此类' -init
方法的超类实现。 super
可用于您的超类实现的任何方法。