- 博客(7)
- 收藏
- 关注
原创 iOS底层-消息的转发
前言上篇文章介绍了方法调用的本质是消息发送。那如果经过查找后,没有找到方法,系统会怎么处理?这就是本文接下来介绍的方法的动态决议和消息转发。动态决议当方法查找一直查到父类为nil之后,有imp赋值为forward_imp这个操作这是方法开始就声明的通过源码无法找到实现,然后在汇编里找到了:TailCallFunctionPointer只是函数调用,没有什么研究价值;// jop.macro TailCallFunctionPointer // $0 = function pointe
2022-05-13 20:25:16 356
原创 iOS底层-类的三顾茅庐(三)
上文讲解完了类对象的结构体`objc_class`用来存储类信息的成员`bits`,整个结构还剩下方法的缓存`cache`,放在压轴来讲解。
2022-05-09 00:00:05 490
原创 iOS底层-类的三顾茅庐(二)
上篇文章分析了`objc_class`里存储数据的`bits`,了解到方法和属性的存储的位置`class_rw_t`(以下简称`rw`)。本文将继续研究`rw`里包含的其他内容。
2022-05-08 23:54:40 723
原创 iOS底层-类的三顾茅庐(一)
了解完对象的底层,知道isa指向的是类对象。那么类(Class)的本质究竟是什么?本文顺序isa的指向,探索类的继承链,和类对象的结构,并且尝试获取方法和变量的存放位置。
2022-05-08 23:46:08 265
原创 iOS底层-对象里都有什么
上篇文章说了iOS中alloc方法是怎么创建对象的,以及对象的本质是结构体。接下来继续探究对象的内存分布,以及对象的isa是个什么样的结构体,存储了哪些信息。
2022-05-08 23:33:40 479
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人