征服 iOS 开发iOS Developer

Runtime ----运行时

2017-04-05  本文已影响19人  胡胡LoL

①.私有成员变量

+ (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);  
}
上一篇下一篇

猜你喜欢

热点阅读