美文网首页
Runtime 运行时

Runtime 运行时

作者: zcz19911 | 来源:发表于2018-07-18 12:01 被阅读0次

有什么用?

Runtime是属于OC的底层实现,可以进行一些非常底层的操作(用OC很难完成的)。

1、利用Runtime,在程序运行中,可以动态地创建一个类(比如KVO)。

2、利用Runtime,在程序运行中,可以动态地修改一个类的属性 / 方法,添加属性 / 方法。

3、遍历一个类的所有成员变量。

应用场景:

1、归档 / 解档,Runtime获取属性和方法。

2、交换两个方法的实现(OC中的方法由方法编号SEL和方法实现IMP两部分。利用swizzle,可以进行方法交换)。

3、KVO的内部实现原理(响应式编程)。动态创建一个子类 NSKVONotifying_Person,重写set方法,改变 isa指针,指向子类。

4、消息转发机制(a、动态方法解析 +resolveInstanceMethod:方法;b、消息快速转发 -forwardingTargetForSelector:方法;c、完整消息转发 先将方法签名-methodSignatureForSelector:  然后转发 - (void)forwardInvocation:)。

相关文章

网友评论

      本文标题:Runtime 运行时

      本文链接:https://www.haomeiwen.com/subject/ctlgpftx.html