Runtime(动态添加方法)
Posted liuzhenjie
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Runtime(动态添加方法)相关的知识,希望对你有一定的参考价值。
A问: 有没有使用过performSelector,什么时候使用?动态添加方法的时候使用过?怎么动态添加方法?用runtime?为什么要动态添加方法?
B:Runtime(动态添加方法):OC都是懒加载机制,只要一个方法实现了,就会马上添加到方法列表中.
app:免费版,收费版
QQ,微博,直播等等应用,都有会员机制
// 任何方法默认都有两个隐式参数,self,_cmd
// 什么时候调用:只要一个对象调用了一个未实现的方法就会调用这个方法,进行处理
// 作用:动态添加方法,处理未实现
+ (BOOL)resolveInstanceMethod:(SEL)sel
{
// [NSStringFromSelector(sel) isEqualToString:@"eat"];
if (sel == NSSelectorFromString(@"run:")) {
// eat
// class: 给哪个类添加方法
// SEL: 添加哪个方法
// IMP: 方法实现 => 函数 => 函数入口 => 函数名
// type: 方法类型
class_addMethod(self, sel, (IMP)aaa, "[email protected]:@");
return YES;
}
return [super resolveInstanceMethod:sel];
}
以上是关于Runtime(动态添加方法)的主要内容,如果未能解决你的问题,请参考以下文章
iOS-Runtime之class_addMethod给类动态添加方法
使用runtime给类动态添加方法并调用 - class_addMethod