自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

开发笔记

以iOS为主

  • 博客(7)
  • 收藏
  • 关注

原创 iOS底层-消息的转发

前言上篇文章介绍了方法调用的本质是消息发送。那如果经过查找后,没有找到方法,系统会怎么处理?这就是本文接下来介绍的方法的动态决议和消息转发。动态决议当方法查找一直查到父类为nil之后,有imp赋值为forward_imp这个操作这是方法开始就声明的通过源码无法找到实现,然后在汇编里找到了:TailCallFunctionPointer只是函数调用,没有什么研究价值;// jop.macro TailCallFunctionPointer // $0 = function pointe

2022-05-13 20:25:16 343

原创 iOS底层-消息发送机制

通过对类的缓存探索了解到方法缓存在类对象的成员`cache`中,而缓存的目的是为了方法调用的时候能更快的进行响应。

2022-05-09 00:06:57 713

原创 iOS底层-类的三顾茅庐(三)

上文讲解完了类对象的结构体`objc_class`用来存储类信息的成员`bits`,整个结构还剩下方法的缓存`cache`,放在压轴来讲解。

2022-05-09 00:00:05 479

原创 iOS底层-类的三顾茅庐(二)

上篇文章分析了`objc_class`里存储数据的`bits`,了解到方法和属性的存储的位置`class_rw_t`(以下简称`rw`)。本文将继续研究`rw`里包含的其他内容。

2022-05-08 23:54:40 709

原创 iOS底层-alloc方法之旅

通过汇编调试和源码分析,介绍iOS开发当中alloc方法到底做了什么。

2022-05-08 23:48:33 382

原创 iOS底层-类的三顾茅庐(一)

了解完对象的底层,知道isa指向的是类对象。那么类(Class)的本质究竟是什么?本文顺序isa的指向,探索类的继承链,和类对象的结构,并且尝试获取方法和变量的存放位置。

2022-05-08 23:46:08 258

原创 iOS底层-对象里都有什么

上篇文章说了iOS中alloc方法是怎么创建对象的,以及对象的本质是结构体。接下来继续探究对象的内存分布,以及对象的isa是个什么样的结构体,存储了哪些信息。

2022-05-08 23:33:40 450

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除