利用运行时遍历一个类中的成员变量。

Posted Enjoy-Coding

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了利用运行时遍历一个类中的成员变量。相关的知识,希望对你有一定的参考价值。

// 备注:可以在需要的地方调用这段代码。
// 但是调用前必须引用 #import <objc/runtime.h> 头文件

- (void)ivarListDemo
{
    unsigned int count;
    
    Ivar *ivarArray = class_copyIvarList([UITextField class], &count);
    
    for (int i = 0; i < count; i++)
    {
        Ivar ivar = ivarArray[i];
        
        NSLog(@"%s",ivar_getName(ivar));
    }
    
    free(ivarArray);
}

 当通过上述方法,遍历出这个类的的所有的成员变量后,可以根据需求,利用KVC,动态设置某个成员变量的属性。

比如,利用上述方法,获得UITextField的_placeholderLabel属性,然后利用KVC设置它的color

以上是关于利用运行时遍历一个类中的成员变量。的主要内容,如果未能解决你的问题,请参考以下文章

java 多态

利用system.reflection遍历一个类的变量成员

JavaSE7基础 类中的成员方法 局部变量和成员变量的变量名相同时,方法将使用局部变量

在 Java 中,是不是可以在运行时使用反射将成员变量添加到类中?

JavaSE7基础 类中成员方法 局部与成员变量名字相同时,使用this访问成员变量

在另外一个类中调用一个窗口类中的listbox的控制变量的成员函数出错!