一个 Objective C 工具,允许您给任何函数添加包装器。
假设您有以下方法
//MyClass.m
-(void) foo {
NSLog(@"My name is Mike");
}
使用 TheWrapper,您可以在运行时给 foo 添加包装器。只需在第一次调用函数之前添加以下代码即可。
//MyClass.m
#import "TheWrapper.h"
+(void) initialize {
[TheWrapper addWrappertoClass:[MyClass class] andSelector:@selector(foo) withPreRunBlock:^(va_list args)
{
NSLog(@"Hi,");
}
andPostRunBlock:^id(id functionReturnValue, va_list args)
{
NSLog(@"Bye.");
}];
}
现在,调用 foo 将会打印
[self foo];
//Hi,
//My name is Mike
//Bye,
原始函数的返回值可以通过 PostRunBlock
参数中的 functionReturnValue
获取。如果您想返回原始返回值,只需在 PostRunBlock
中返回它即可。