Runtime ----运行时
2017-04-05 本文已影响19人
胡胡LoL
①.私有成员变量
+ (void)initialize {
//使用 runtime 获取某个类内部影藏的成员变量
//首先需要导入库 <objc/runtime.h>
unsigned int count = 0;
//拷贝出所有的成员变量列表
Ivar *ivars = class_copyIvarList([UITextField class], &count);
for (int i = 0; i < count; i++) {
//取出成员变量
Ivar ivar = *(ivars + i);
//打印成员变量
NSLog(@"%s",ivar_getName(ivar));
}
//释放
free(ivars);
}
②.获取属性
+ (void)initialize {
//使用 runtime 获取某个类内部影藏的成员变量
//首先需要导入库 <objc/runtime.h>
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));
}
//释放
free(properties);
}