- 通过 runtime 获取到某个类的所有成员变量:
- (void)viewDidLoad {
[super viewDidLoad];
//获取所有成员变量以及其所归属的类
unsigned int count = 0;
Ivar *vars = class_copyIvarList([UITextField class], &count);
for (int i=0; i<count; i++) {
Ivar var = *(vars + i);
NSLog(@"%s <------> %s",ivar_getName(var),ivar_getTypeEncoding(var));
}
}
- 通过 runtime 获取到某个类的所有属性及其对应的类:
- (void)viewDidLoad {
[super viewDidLoad];
//获取所有属性以及其所对应的类
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];
NSLog(@"%s <-------> %s",property_getName(property),property_getAttributes(property));
}
}
- 其它
通过类比获取 成员变量 和 属性列表 的方法,还可以获取到某个类所拥有的方法、方法所返回的类型、方法参数个数...这里不再赘述。