美文网首页
iOS Runtime 获取成员变量

iOS Runtime 获取成员变量

作者: LiuTianXiang | 来源:发表于2016-09-26 16:14 被阅读946次

首先包含runtime头文件

#import <objc/runtime.h>

以UITextField为例
1.遍历所有成员变量

+ (void)initialize
{
      unsigned int count = 0;
    
    // 拷贝出所有的成员变量列表
    Ivar *ivars = class_copyIvarList([UITextField class], &count);
    
    for (int i = 0; i<count; i++) {
        // 取出成员变量
        //        Ivar ivar = *(ivars + i);
        Ivar ivar = ivars[i];
        
        // 打印成员变量名字
        XMGLog(@"%s %s", ivar_getName(ivar), ivar_getTypeEncoding(ivar));
    }
    
    // 释放
    free(ivars);
}

2.遍历所有属性

+ (void)initialize
{
    unsigned int count = 0;
    
    objc_property_t *properties = class_copyPropertyList([UITextField class], &count);
    
    for (int i = 0; i<count; i++) {
        // 取出属性
        objc_property_t property = properties[i];
        
        // 打印属性名字
        XMGLog(@"%s   <---->   %s", property_getName(property), property_getAttributes(property));
    }
    
    free(properties);
}

相关文章

网友评论

      本文标题:iOS Runtime 获取成员变量

      本文链接:https://www.haomeiwen.com/subject/avuqyttx.html