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

// 备注:可以在需要的地方调用这段代码。
// 但是调用前必须引用 #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

原文地址:https://www.cnblogs.com/fs-ios/p/5337488.html