我需要向需要扩展的方法添加额外的行为,即实现看起来像的方法
- (void)extendMethod:(SEL)selector forClass:(Class)class withCompletionBlock:(void (^)(void))completionBlock;
因此,每次Class
实例调用带有SEL
选择器的方法时,都应该调用我的完成块。
我尝试过方法调配,但遇到了一些问题:我希望调用原始方法实现。
我需要的与子类化非常相似,但这应该在没有子类化的情况下实现。
更新:
例如,我有UIViewController
named的子类MyViewController
。MyViewController
有- (void)viewDidLoad
方法。我在应用程序的某个地方调用方法
[methodExtender extendMethod:@selector(viewDidLoad)
forClass:[MyViewController class]
withCompletionBlock:^{
NSLog(@"view did load called");
}];
因此,在 MyViewController 的每个实例的 viewDidLoad 方法之后,我调用了完成块。