main()之前的过程有哪些?

1main之前的加载过程
1)dyld 开始将程序二进制文件初始化
2)交由ImageLoader 读取 image,其中包含了我们的类,方法等各种符号(Class、Protocol 、Selector、 IMP)
3)由于runtime 向dyld 绑定了回调,当image加载到内存后,dyld会通知runtime进行处理
4)runtime 接手后调用map_images做解析和处理
5)接下来load_images 中调用call_load_methods方法,遍历所有加载进来的Class,按继承层次依次调用Class的+load和其他Category的+load方法
6)至此 所有的信息都被加载到内存中
7)最后dyld调用真正的main函数

摘自文章

推荐阅读更多精彩内容

  • 转至元数据结尾创建: 董潇伟,最新修改于: 十二月 23, 2016 转至元数据起始第一章:isa和Class一....
    40c0490e5268阅读 1,058评论 0 9
  • “天生我材必有用”这句话从小听到大,但我一直不明白,我生下来到底有什么用,是伟大的科学家,伟大的政治家,伟大的……...
    合神sooning阅读 101评论 2 3
  • 一、初探条件渲染 vue 的条件渲染,仍旧依赖于指令系统,下面逐个介绍: (1)v-if 当 c1 为真值的时候,...
    ebfc7d0362e4阅读 1,335评论 0 1
  • 其实 也没什么 好担心的 我答应你 雾散尽之后 我就启程 穿过种满了新茶与相思的 山径之后 我知道 前路将经由芒草...
    若水云烟阅读 512评论 3 6
  • 今天晚上我洗了全家的碗,首先要给碗里倒上一些洗洁精。 其次,给里面接上一些自来水。 用手,毛巾或者刷子将油渍洗干净...
    5533张毅涵阅读 187评论 0 1