Runtime ----运行时

①.私有成员变量

+ (void)initialize {
    
    //使用 runtime 获取某个类内部影藏的成员变量
    //首先需要导入库 <objc/runtime.h>
    unsigned int count = 0;
   
   //拷贝出所有的成员变量列表
    Ivar *ivars = class_copyIvarList([UITextField class], &count);
    
    for (int i = 0; i < count; i++) {
        
        //取出成员变量
        Ivar ivar = *(ivars + i);
        
        //打印成员变量
        NSLog(@"%s",ivar_getName(ivar));
    } 
   
    //释放
    free(ivars);  
}

②.获取属性

+ (void)initialize {
    
    //使用 runtime 获取某个类内部影藏的成员变量
    //首先需要导入库 <objc/runtime.h>
    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];
        
        //打印属性名字及属性的类型
        NSLog(@"%s---------%s",property_getName(property),property_getAttributes(property));
    } 
   
    //释放
    free(properties);  
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容