背景:项目越来庞大,业务团队很多的情况下,就会出现一种情况,基础组件被很多业务方所依赖,比如其中的某个方法,被不同的业务方去多次swizzle, 多处hook一个方法,最后执行的方法是哪个?是最后一个hook的使用方还是?
示例代码说明, 4个viewController, 按照以下顺序依次push:
ViewController -> DDMNOtificationViewController -> DDMSwizzledViewController ->
DDMSwizzleSecondViewController
在每个vc的viewDidLoad方法里,调用被hook的方法(此时每个vc的实例方法已经在+load hook了,关于+load的问题后续会写一篇)
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
self.navigationItem.title = NSStringFromClass([self class]);
UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(100, 100, 200, 44)];
button.backgroundColor = [UIColor yellowColor];
[button addTarget:self action:@selector(buttonAction) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:button];
}
- (void)ddm_viewcontroller_testInstanceMet