Method-Swizzling实现位置
来源:5-6 Method-Swizzling相关面试问题

qq_許鍀諾言_0
2021-10-28
课程Method-Swizzling是runtime运行时这块知识点,所以我能够理解可以在分类中去实现method_exchangeImplementations() 函数,因为分类也是动态加载的,但是我也尝试把method_exchangeImplementations函数放在某个自定义的根控制器去去实现,发现也是可以的.就比较疑问method_exchangeImplementations函数本身就是动态函数吗? 是不是也可以理解为只要程序加载进行runtime动态运行就会把项目里所有的动态函数如:method_exchangeImplementations函数 都会进行预处理实现然后再进行编译吗?
写回答
1回答
-
于海
2021-10-28
嗯,OC本身就是动态运行时语言,方法和函数还是有区别的。runtimr过程有个方法查找的过程,再去执行实际的具体实现,即IMP。交换函数其实是在交换方法执行的imp指向
00
相似问题