概述 接着上一篇文章[https://www.jianshu.com/p/cf9f202ba041],我们继续探索消息发送的后续流程 消息转发(...
找到objc_msgSend 调用方法,打断点 通过汇编发现调用 , ,发现 源码里面实现 通过 源码找到 的实现入口,其中不同的架构有不同的实...
cache数据结构 我们先从objc源码查看一下,由于结构体里面内容太多,看一下简化版 1.cache_t里面保存了两个成员,_bucketsA...
isa 流程探索 第一步:新建两个类QHPerson 和QHTearcher,其中QHTearcher继承QHPerson,然后我们做如下操作:...
oc类、对象探索 首先我们创建一个oc类 然后用clang编译QHPerson.m文件 会生成一个 文件,打开后对 进行分析, 我们发现 类在底...
影响OC对象内存大小的因素 数据类型内存大小: 代码分析 通过class_getInstanceSize获取实例的大小, 根据我上面标注的结果是...
概述 我们在这样alloc一个对象时oc底层究竟做了啥 QHPerson *p = [QHPerson alloc] ;要想分析我们必须先拿到o...
概述 KVO官网[https://developer.apple.com/library/archive/documentation/Cocoa...
成员变量、实例变量、属性 成员变量:不会自动生成get、set方法,成员变量不能用点语法调用,因为没有set和get方法,只能使用->调用。 属...