利用runtime访问苹果隐藏的成员变量和成员方法
2016-12-28 本文已影响13人
七里田间的守望者
访问成员变量
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];
// 打印属性名字
Log(@"%s <----> %s", property_getName(property), property_getAttributes(property));
}
free(properties);
访问成员方法
unsigned int count = 0;
// 拷贝出所有的成员变量列表
Ivar *ivars = class_copyIvarList([UITextField class], &count);
for (int i = 0; i<count; i++) {
// 取出成员变量
// Ivar ivar = *(ivars + i);
Ivar ivar = ivars[i];
// 打印成员变量名字
Log(@"%s %s", ivar_getName(ivar), ivar_getTypeEncoding(ivar));
}
// 释放
free(ivars);