实践中学习 oc runtime 之一: 打印类的所有属性(包括私有属性)

因为在使用中要设置 UITextFieldPlaceholder 文字属性,公开属性无法设置,所以需要查看私有属性,做法如下:

利用运行时查看类的所有属性

头文件导入 #import

获取UITextField的私有属性查看

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

打印结果如下:


实践中学习 oc runtime 之一: 打印类的所有属性(包括私有属性)_第1张图片

发现里面有个 _placeholderLabel私有属性,就可以拿来用 KVC 方式赋值使用了

你可能感兴趣的:(实践中学习 oc runtime 之一: 打印类的所有属性(包括私有属性))