iOS 查询一个类的所有成员变量和私有函数

iOS运行时获取对象的成员变量和成员方法

  1. 首先导入runtime 头文件 #import<objc/runtime.h>

2.获取某个类的成员变量或则属性

 unsigned int numIvars;//成员变量个数

 Ivar *vars = class_copyIvarList(NSClassFromString(@"UIView"), &numIvars);

//Ivar *vars = class_copyIvarList([UIView class], &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);

   key = [NSString stringWithUTF8String:ivar_getTypeEncoding(thisIvar)];//获取成员变量的数据类型

   NSLog(@"variable type :%@", key);
 }
 free(vars);

3.获取成员函数

Method*meth =class_copyMethodList(NSClassFromString(@"UIView"), &numIvars);

//Method *meth = class_copyMethodList([UIView class], &numIvars);

   for(int i =0; i < numIvars; i++) {

     Method thisIvar = meth[i];

     SEL sel =method_getName(thisIvar);

     const char *name =sel_getName(self);

     NSLog(@"zp method :%s", name);

   }

   free(meth);
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容