iOS反射---2.类方法的反射

  1. 1.NSObject常用方法:(类别判断, 也可以说是动态方法)

    [objc] view plaincopy在CODE上查看代码片派生到我的代码片
    1. Student *stu = [[[Student alloc] init] autorelease];  
    2.   
    3. // isKindOfClass判断对象是否属于某个类 或者 子类  
    4. if ( [stu isKindOfClass:[Person class]] ) {  
    5.     // NSLog(@"stu属于Person或者继承自Person");  
    6. }  
    7.   
    8. // isMemberOfClass判断对象是否属于某个类(不包括子类)  
    9. BOOL result = [stu isMemberOfClass:[Student class]];  
    10. // NSLog(@"%i", result);  
    11.   
    12.   
    13. // 直接调用  
    14. // [stu test];  
    15.   
    16. // 间接调用  
    17. [stu performSelector:@selector(test)];  
    18. // [stu performSelector:@selector(test2:) withObject:@"abc"];  
    19. // 延迟2秒后调用test2:方法  
    20. [stu performSelector:@selector(test2:) withObject:@"abc" afterDelay:2];  

    2.类的反射方法:

    [objc] view plaincopy在CODE上查看代码片派生到我的代码片
    1. // 类的反射(可以用作一些viewController多得时候,用类的反射取得VC, 比如tabBarController, 侧滑菜单等)
    2.     NSString *str = @"Person";  
    3.     Class class = NSClassFromString(str);  
    4.       
    5.     Person *person = [[class alloc] init];  
    6.     NSLog(@"%@", person);  
    7.       
    8.       
    9.     // Class变成字符串  
    10.     NSString *name =  NSStringFromClass([Person class]);  
    11.       
    12.       
    13.     // 方法的反射  
    14.     NSString *method = @"test";  
    15.     SEL selector = NSSelectorFromString(method);  
    16.     [person performSelector:selector];  
    17.       
    18.     // 将SEL转换为字符串  
    19.     NSString *selectorName = NSStringFromSelector(selector);  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值