内容简介:本系列主要是看完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次 | 多次 |
是否需要显式调用父类实现 | 否 | 否 |
是否沿用父类的实现 | 否 | 是 |
分类中的实现 | 类和分类都执行 | 覆盖类中的方法,只执行分类的实现 |
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Swift语言实战入门
伍星、罗飞、刘志华、王浩力、刘蕾 / 人民邮电出版社 / 2014-10-23 / 79
《Swift语言实战入门》以Swift语言的基础知识和实战技巧为主要内容,佐以大量的实例和图片进行讲解。全书内容分为三大部分,共11章节。第一大部分讲述Swift语言的基础知识和语法,第二大部分讲解开发框架和库的相关内容,第三大部分集中讲解以2048游戏为例的实战演练,从入门到实战层层递进。本书注重实战,秉承着学以致用的原则,让读者真正看后能够实际操作。120个代码清单全部共享,配套教学视频在线收......一起来看看 《Swift语言实战入门》 这本书的介绍吧!
MD5 加密
MD5 加密工具
HEX CMYK 转换工具
HEX CMYK 互转工具