@interface TestObject : NSObject
- (void)testMethod:(NSString *)text;
@end
@implementation TestObject
- (void)testMethod:(NSString *)text {
NSLog(@"testMethod : %@", text);
}
@end
// runtime
IMP function = imp_implementationWithBlock(^(id self, NSString *text) {
NSLog(@"callback block : %@", text);
});
const char *types = sel_getName(@selector(testMethod:));
class_replaceMethod([TestObject class], @selector(testMethod:), function, types);
TestObject *object = [[TestObject alloc] init];
[object testMethod:@"lxz"];
callback block : lxz