runtime

「重学iOS」所谓Runtime

2020-12-19
runtime是个啥 Objective-C 扩展了 C 语言,并加入了面向对象特性和 Smalltalk 式的消息传递机制。而这个扩展的核心是一个用 C 和 编译语言 写的 Runtime 库。它是 Objective-C 面向对象和动...
Read more

「重学iOS」Objective-C中super的相关内容

2020-12-19
首先我们来看一下这段代码: 我们发现最终的打印结果和我们预期的不一样,按我们的思路Super就是指的的Dog的父类Animal,Animal调用class方法应该返回Animal 但是结果却不是这样,这是为什么?首先我们先将这段代码转换成...
Read more

「重学iOS」Objective-C中方法的传递过程

2020-12-19
我们现在已经清楚方法的调用顺序了,实现从缓存中找没有的话再去rw_t中找,那么再没有的话就去其父类中找,父类中查找也是如此,先去父类中的cache中查找,没有的话再去父类的rw_t中找,以此类推。如果查找到基类还没有呢?难道就直接报unre...
Read more

「重学iOS」Objective-C中的方法缓存

2020-12-18
我们在分析清楚方法列表和方法的结构后,我们再来看一下方法的调用是怎么一个流程呢?是直接去方法列表里面遍历查找对应的方法吗? 其实不然,我们在分析类的结构的时候,除了bits(指向类的具体信息,包括rw_t、ro_t等等一些内容)外,还有一个...
Read more

「重学iOS」Objective-C中Class的具体结构

2020-12-18
我们之前在讲分类的时候讲到了类的大体结构,如下图所示: 就如我们之前讲到的,当我们调用方法的时候是从bits中的methods中查找方法,分类的方法是排在主类方法前面的,所以调用同名方法是先调用分类的,而且究竟调用哪个分类的方法要取决于编...
Read more