iOS 运行时的一些方法

2018-11-16  本文已影响0人  yuezishenyou

注意: 引用头文件
/#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";
}
上一篇下一篇

猜你喜欢

热点阅读