您的位置:首页 > 移动开发 > Objective-C

Objective-C的Runtime特性

2015-05-21 16:54 357 查看
[code]// 判断给定的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);
    }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: