比如要获取类A的.m里的B对象(其中A_instance是A类alloc init的一个对象)
unsigned int count = 0;
//拷贝出所胡的成员变量列表
Ivar *ivars = class_copyIvarList([A class], &count);
for (int i = 0; i<count; i++) {
// 取出成员变量
Ivar ivar = *(ivars + i);
NSString *astring = [[NSString alloc] initWithCString:ivar_getName(ivar) encoding:NSUTF8StringEncoding];
if ([astring isEqualToString:@"_B"]) {
B *temp_B = (B *)object_getIvar(self.A_instance, ivar);(B看是否是基本数据类型再决定是否加*)
NSLog("%@",B);
break;
}
// // 打印成员变量名字
// NSLog(@"%s", ivar_getName(ivar));
// // 打印成员变量的数据类型
// NSLog(@"%s", ivar_getTypeEncoding(ivar));
// NSLog(@"%@", object_getIvar(self.roomCtrl, ivar));
}
// 释放
free(ivars);