引入头文件:#import <objc/runtime.h>
unsigned int numIvars; //成员变量个数
Ivar *vars = class_copyIvarList(NSClassFromString(@"NSObject"), &numIvars);
NSString *key=nil;
for(int i = 0; i < numIvars; i++) {
Ivar thisIvar = vars[i];
key = [NSString stringWithUTF8String:ivar_getName(thisIvar)]; //获取成员变量的名字
NSLog(@"variable name :%@", key);
}
free(vars);
objc_property_t *properties = class_copyPropertyList(NSClassFromString(@"NSObject"), &numIvars);
for(int i = 0; i < numIvars; i++) {
objc_property_t thisIvar = properties[i];
NSString *propertyName = [NSString stringWithUTF8String:property_getName(thisIvar)];
NSLog(@"property :%@", propertyName);
}
free(properties);
Method *methods = class_copyMethodList(NSClassFromString(@"NSObject"), &numIvars);
for(int i = 0; i < numIvars; i++) {
Method thisIvar = methods[i];
SEL sel = method_getName(thisIvar);
const char *name = sel_getName(sel);
NSLog(@"method :%s", name);
}
free(methods);
网友评论