Ant*_*luk 1 class objective-c super superclass
如何向某些超类发送消息?例如:
@interface A: NSObject;
@interface B: A;
@interface C: B;
@implementation C
- (id)init {
[super init];
}
Run Code Online (Sandbox Code Playgroud)
,其中"超级"是A级,但不是B级
您总是可以获得任何类的选择器的IMP,并手动调用它.
@implementation C
- (id)init
{
IMP a_init = [A instanceMethodForSelector:_cmd];
return a_init(self, _cmd);
}
@end
Run Code Online (Sandbox Code Playgroud)
你也可以单行, return [A instanceMethodForSelector:_cmd](self, _cmd);
对于记录,_cmd由Objective-C提供给您,并且是SEL当前方法的记录.