SilverFruity / OCRunner

Execute Objective-C code as script. AST Interpreter. iOS hotfix SDK.
MIT License
660 stars 149 forks source link

重写 super 的实例方法后,调用不到该方法 #4

Closed tinymind closed 3 years ago

tinymind commented 3 years ago

原始代码

@interface Car : NSObject

- (void)run;

@end

@interface BMW : Car

- (void)run;

@end

@interface MiniBMW : BMW

@end

#pragma mark - Car

@implementation Car

- (void)run
{
    NSLog(@"Car is running");
}

@end

#pragma mark - BMW

@implementation BMW

- (void)run
{
    NSLog(@"BMW is running");
}

@end

#pragma mark - MiniBMW

@implementation MiniBMW

@end

修复代码


@implementation BMW

- (void)run
{
    NSLog(@"running method by hook");
}

@end

调用代码

    MiniBWM *bmw = [[MiniBMW alloc] init];
    [bmw run];

此时,调用 run 没有任何输出。