首页 > 其他 > 详细

runtime------动态添加方法

时间:2015-12-10 23:21:23      阅读:277      评论:0      收藏:0      [点我收藏+]
#import "ViewController.h" #import "Person.h" #import @interface ViewController () @end @implementation ViewController /* 注意: 1.如果一个类中方法仅仅是声明,并不会加载到内存,只有实现的方法才会加载到内存中 */ void test(int *count) { *count = 2; } - (void)viewDidLoad { [super viewDidLoad]; [self getMethodList]; } // 获取类中的方法 - (void)getMethodList { int a = 0; int b = 10; int c = 2; int arr[] = {a,b,c}; int *p; p = arr; NSLog(@"%d %d",arr[1],p[1]); // 获取Person类中所有方法 // 参数一:获取哪个类的方法列表 // 参数二:方法列表总数 unsigned int count = 0; // 调用完这个方法,count就有值,记录方法列表总数 // 获取仅仅是当前类 // 返回指向方法列表数组 Method *methodList = class_copyMethodList([Person class], &count); // OBJC_EXPORT Method *class_copyMethodList(Class cls, unsigned int *outCount) // 2 0 1 for (int i = 0; i < count; i++) { // 取出对应的方法 Method method = methodList[i]; //Method 方法,条理 // 获取方法名(方法编号) SEL methodSel = method_getName(method); NSLog(@"%@",NSStringFromSelector(methodSel)); } } @end #import @interface Person : NSObject - (void)eat; - (void)run; //- (void)study; @end #import "Person.h" @implementation Person - (void)eat { NSLog(@"吃东西"); } - (void)run { } @end

runtime------动态添加方法

原文:http://www.cnblogs.com/HJXuu/p/5037379.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!