Objective-C的Runtime特性

// 判断给定的Class是否是一个元类
    NSObject *object = [[NSObject alloc] init];
    Class class = [NSObject class];
    BOOL yup = class_isMetaClass(object_getClass(class));
    BOOL nope = class_isMetaClass(object_getClass(object));

    // 获取类的父类
    Class cls = class_getSuperclass([UIView class]);//打印结果: UIResponder

    //获取一个类的大小?
    size_t sss = class_getInstanceSize([UIView class]);


    unsigned int outCount = 0;
    // 获取一个类的属性
    Ivar *ivars = class_copyIvarList([NSString class], &outCount);
    for (int i = 0; i < outCount; i++) {
        Ivar _var = *(ivars + i);
        NSLog(@"%s",ivar_getTypeEncoding(_var));
        NSLog(@"%s",ivar_getName(_var));
    }


    // 获取一个类的所有方法,返回一个数组
    u_int count;
    Method *methods = class_copyMethodList([UIView class], &count);
    for (int i = 0; i < count ; i++)
    {
        SEL name = method_getName(methods[i]);
        NSString *strName = [NSString  stringWithCString:sel_getName(name) encoding:NSUTF8StringEncoding];
        NSLog(@">>%@<<",strName);
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值