iOS运行时获取对象的成员变量和成员方法
来源:互联网 发布:java工控软件开发 编辑:程序博客网 时间:2024/05/21 06:19
1、包含运行时头文件
#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(sel);
NSLog(@"zp method :%s", name);
}
free(meth);
例子中使用的UIView类可以替换成任何自定义的类。更多函数查看<objc/runtime.h> !
#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(sel);
NSLog(@"zp method :%s", name);
}
free(meth);
例子中使用的UIView类可以替换成任何自定义的类。更多函数查看<objc/runtime.h> !
0 0
- iOS运行时获取对象的成员变量和成员方法
- iOS运行时获取对象的成员变量和成员方法
- iOS运行时获取对象的成员变量和成员方法
- iOS运行时获取对象的成员变量和成员方法
- ios 获取AppDelegate对象的成员变量
- 通过Java反射机制获取对象、方法和成员变量
- 反射机制的概述和字节码对象的获取,通过反射获取构造方法并使用;通过反射获取成员变量并使用;通过反射获取私有成员变量并使用;通过反射获取成员方法并使用
- 运行时 动态获取成员变量
- iOS运行时的用途三 -- 获得属性名,方法名,成员变量名
- 获取类的成员变量(ios)
- 上转型对象的成员变量和成员方法的调用
- 通过反射获取类对象的成员函数、成员变量(只获取成员函数)、构造函数
- 成员变量和方法变量
- 继承成员变量和成员方法的区别
- 成员变量和成员方法对多态的不同
- CWinAPP类的成员变量和成员方法
- Java中成员变量和成员方法的使用
- iOS 成员变量和属性的区别
- struts2 实现登录拦截器和验证方法
- leetcode - Plus One
- IAR下uCOS调试任务name为"?"
- 6. 面对对象(高级) Part 2 --- 学习笔记
- leetcode: Permutations
- iOS运行时获取对象的成员变量和成员方法
- MyEclipse 修改注释模版
- webservice文件上传下载(byte[] 实现方式)
- 心是净土,也是红尘
- maven在对resources目录下的文件进行过滤时出现部分文件未能正确替换
- CSS A link hover active visited伪类超链接锚文本样式教程
- several technical limits to the NameNode
- windows phone 8 开发学习笔记(三)
- android developer镜像网站