内容简介:本系列主要是看完MJ的OC底层原理课程所写的总结,希望自己能加深对iOS底层的了解。
本系列主要是看完MJ的OC底层原理课程所写的总结,希望自己能加深对iOS底层的了解。
Category的使用场合
- 拓展系统类的功能
- 给现有的类添加方法
- 可以替换原来类的方法
- 分类中重写load方法不会替换原来类的load方法
原理
struct category_t
- 分类的方法列表会分别合并到__Class__方法列表和__Meta-Class__方法列表
- 当消息发送的时候,遍历方法列表,由于分类的方法在列表的前面所以优先调用分类的方法,从而实现替换原来类的方法
load与initialize对比
| 条件 | +load | +initialize |
|---|---|---|
| 关键方法 | (*load_method)(cls, SEL_load) |
objc_msgSend |
| 调用时机 | 被添加到 runtime 时 | 收到第一条消息前,可能永远不调用 |
| 调用顺序 | 父类->子类->分类 | 父类->子类 |
| 调用次数 | 1次 | 多次 |
| 是否需要显式调用父类实现 | 否 | 否 |
| 是否沿用父类的实现 | 否 | 是 |
| 分类中的实现 | 类和分类都执行 | 覆盖类中的方法,只执行分类的实现 |
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
逆向工程核心原理
[韩] 李承远 / 武传海 / 人民邮电出版社 / 2014-4-25 / 109.00元
本书十分详尽地介绍了代码逆向分析的核心原理。作者在Ahnlab 研究所工作多年,书中不仅包括其以此经验为基础亲自编写的大量代码,还包含了逆向工程研究人员必须了解的各种技术和技巧。彻底理解并切实掌握逆向工程这门技术,就能在众多IT 相关领域进行拓展运用,这本书就是通向逆向工程大门的捷径。 想成为逆向工程研究员的读者或正在从事逆向开发工作的开发人员一定会通过本书获得很大帮助。同时,想成为安全领域......一起来看看 《逆向工程核心原理》 这本书的介绍吧!