Runtime ----运行时

作者: 胡胡LoL | 来源:发表于2017-04-05 17:47 被阅读19次

    ①.私有成员变量

    + (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);  
    }
    

    相关文章

      网友评论

        本文标题: Runtime ----运行时

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