注意: 引用头文件
/#improt <objc/runtime.h>
/#improt<objc/message.h>
objc_msgSend
// 无参数无返回值
((void (*) (id, SEL)) objc_msgSend )
(self, NSSelectorFromString(@"method1"));
// 有参数无返回值
((void (*)(id,SEL,NSString *)) objc_msgSend)
(self,NSSelectorFromString(@"method2:"),@"333333");
// 有参数有返回值
NSString *objectValue = ((NSString * (*)(id, SEL,NSString *)) objc_msgSend)
(self, NSSelectorFromString(@"method3:"),@"444444");
NSLog(@"--返回值:%@---",objectValue);
- (void)method1 {
NSLog(@"-----无参数,无返回值-------");
}
- (void)method2:(NSString *)value {
NSLog(@"-----有参数,无返回值:%@-------",value);
}
- (NSString *)method3:(NSString *)value {
NSLog(@"-----有参数,有返回值:%@-------",value);
return @"555555";
}
网友评论