自己参考各种资料整理的runtime
首先,我们来介绍以下runtime是什么?
runtime 简称运行时,是一套底层的C语言API.其实就是在程序运行时会触发的一些机制,我们都知道OC是只有在运行时才会绝定调用哪个函数,而不是在编译时.属于动态调用过程,所以OC也是一门动态语言.而oc得每个方法的执行,其实就是发送了一个消息,其实就是把我们的代码转化成了runtime的C语言代码执行,
例: [target doSomething];
会被转化成
objc_msgSend(target, @selector(doSomething));
OC中把一切都设计成了对象,其实类也是也个对象,并且在runtime中有那个结构体表示;
那么runtime有什么用处呢?
1> 能动态产生一个类、一个成员变量、一个方法
2> 能动态修改一个类、一个成员变量、一个方法
3> 能动态删除一个类、一个成员变量、一个方法