- 通過 runtime 獲取到某個(gè)類的所有成員變量:
- (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 獲取到某個(gè)類的所有屬性及其對應(yīng)的類:
- (void)viewDidLoad {
[super viewDidLoad];
//獲取所有屬性以及其所對應(yīng)的類
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));
}
}

原有屬性列表

獲取的屬性列表
- 其它
通過類比獲取 成員變量 和 屬性列表 的方法,還可以獲取到某個(gè)類所擁有的方法、方法所返回的類型、方法參數(shù)個(gè)數(shù)...這里不再贅述。