实践中学习 oc runtime 之一: 打印类的所有属性(包括
2016-06-26 本文已影响278人
devZhang
因为在使用中要设置
UITextField
的Placeholder
文字属性,公开属性无法设置,所以需要查看私有属性,做法如下:
利用运行时查看类的所有属性
头文件导入 #import <objc/runtime.h>
获取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);
打印结果如下:
发现里面有个 _placeholderLabel
私有属性,就可以拿来用 KVC 方式赋值使用了