请考虑以下代码:
`@interface Parent : NSObject
- (void)whoAmI;
@end
@implementation Parent
- (void)whoAmI
{
NSLog(@"PARENT CALLED");
}
@end
@interface Child : Parent
- (void)test;
@end
@implementation Child
- (void)whoAmI
{
NSLog(@"CHILD CALLED");
}
- (void)test
{
NSLog(@"%@", [super class]);// CHILD!!!! why???
[super performSelector:@selector(whoAmI)];// "CHILD CALLED" why???
}
@end
`
当我调用test
方法时,我希望看到打印的父类和whoAmI
执行的父方法。但令人惊讶的是,派生类两次都被调用。谁能解释它为什么会发生以及我如何performSelector:
在基类上?