前言

学习OC的runtime也有一段时间了,是时候写个runtime的系列来做个总结了。大体按照以下几个主题:

  1. Class && Object
  2. Property && Method
  3. Category && Association Object
  4. Message
  5. 上层API
  6. runtime应用示例 && 奇奇怪怪的例子
  7. 如果还有其他的话

概述

说是概述,其实是我学习runtime的过程。

  1. 苹果官方的runtime文档,对runtime是什么,用来做什么了解个大概

  2. 拿到了runtime的源码,据说能编译成objc的动态库,并且新建一个使用自己编译的runtime的mac的工程

  3. 按原计划,到了这一步就该自己对着runtime的源码,修修改改,看看能弄出什么奇怪的效果。但是这才发现,要是重头开始一行一行的看runtime源码,是多么浩大的一项工程。。

  4. 改变策略,抓住runtime的重点,从博客看起,逐个弄懂。在这一过程中发现了2个人的博客

    1. Haven_ZN
    2. Draveness

    这两位大神的博客里面都有一系列的关于runtime的源码的详解,受益匪浅。

  5. 在研究runtime源码的时候还需要使用lldb进行debug,与调试器共舞 - LLDB 的华尔兹 这篇文章介绍了lldb的debug方法

参考