runtime这个运行机制,它基本上是用C和汇编写的一个库
网上文章很多,引用几篇好的,写下关键词,方便自己看,以后有时间在补全总结
实现:
编译器 clang - llvm
源代码 - 编译器前端( clang ) - 优化器 - 编译器后端( llvm ) - 机器码
runtime库是在 clang 编译期去执行的,在 clang 和 llvm 之间会转化为一种 IR 代码(可以去看 suunyxx 的 clang分享视频),在视频中提到了 runtime 的桥接。
![](https://img.haomeiwen.com/i1396010/0e337cb09d7a4f56.png)
![](https://img.haomeiwen.com/i1396010/9589b42a9b1e1ad8.png)
clang视频:
https://pan.baidu.com/share/home?uk=2885973690#category/type=0
http://blog.sunnyxx.com/2016/08/13/reunderstanding-runtime-0/
原理:
主要就是运行时的消息机制 [obj message] ,以及可以利用运行时机制来干嘛,比如 Method Swizzling 。
http://southpeak.github.io/2014/10/25/objective-c-runtime-1/
http://southpeak.github.io/2014/10/30/objective-c-runtime-2/
http://southpeak.github.io/2014/11/03/objective-c-runtime-3/
http://southpeak.github.io/2014/11/06/objective-c-runtime-4/
http://southpeak.github.io/2014/11/08/objective-c-runtime-5/
http://southpeak.github.io/2014/11/09/objective-c-runtime-6/
虽然写的比较早了,但是这是我看了网上大部分 runtime 中,讲的最细致的,让我看明白了以前理解的误区。
网友评论