Objective-C 作为基于 Runtime 的语言,它有非常强大的动态特性,可以在运行期间自省.进行方法调剂.为类增加属性.修改消息转发链路,在代码运行期间通过 Runtime 几乎可以修改 Objecitve-C 层的一切类.方法以及属性. 真正绝对意义上的动态语言或者静态语言是不存在的. C 语言往往会给我们留下不可修改的这一印象:在之前的几年时间里,笔者确实也是这么认为的,然而最近接触到的 fishhook 使我对 C 语言的不可修改有了更加深刻的理解. 在文章中涉及到一个比较重要的…