首页
首页
沸点
课程
直播
活动
竞赛
商城
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
Objc源码分析
红酒牛排
创建于2021-05-24
订阅专栏
Objc源码分析包括但不限定:类、对象、isa、方法解析、方法查找与转发等
等 2 人订阅
共6篇文章
创建于2021-05-24
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
红酒牛排
3年前
iOS
OC源码分析之方法的解析与转发原理
OC中方法的调用是通过objc_msgSend(或objc_msgSendSuper,或objc_msgSend_stret,或objc_msgSendSuper_stret)函数,向调用者发送名为SEL的消息,找到具体的函数地址IMP,进而执行该函数。 下面进入正题。 它主要…
2673
14
4
红酒牛排
3年前
iOS
OC源码分析之方法的查找原理
objc_msgSend、objc_msgSend_stret、objc_msgSendSuper和objc_msgSendSuper_stret。 发送给对象的父类的消息(使用super关键字时)是使用objc_msgSendSuper发送的,其他消息是使用objc_msgS…
2394
9
2
红酒牛排
3年前
iOS
OC源码分析之方法的缓存原理
本文是针对 方法缓存——cache_t 的分析(且源码版本是 objc4-756.2),下面进入正文。 当你的OC项目编译完成后,类的实例方法(方法编号SEL 和 函数地址IMP)就保存在类的方法列表中。我们知道 OC 为了实现其动态性,将 方法的调用包装成了 SEL 寻找 I…
3697
35
5
红酒牛排
3年前
iOS
OC源码分析之类的结构解读
1. 类的结构 如果你使用过Objective-C(简称OC)这门语言开发过应用程序,你一定对NSObject不陌生。OC里面有两个NSObject,一个是我们熟知的NSObject类,另一个是NSObject协议。协议类似于其他面向对象语言(如Java、C++)的接口,NSO…
3828
11
1
红酒牛排
3年前
iOS
OC源码分析之isa
1. isa介绍 据说,为了节省内存和提高执行效率,苹果提出了Tagged Pointer的概念。对于 64 位程序,引入Tagged Pointer后,相关逻辑能减少一半的内存占用,以及 3倍 的访问速度提升,100倍 的创建、销毁速度提升。 在64位CPU架构下bits长度…
2492
19
2
红酒牛排
3年前
iOS
OC源码分析之对象的创建
显而易见,对象p、p1、p2的内存地址一致,即这三者是同一个对象。那么问题来了,为什么这三个对象地址是一样的?alloc和init底层到底做了什么?带着这些问题,我们从源码的角度探索一下吧。 1. alloc源码分析 从 苹果官方开源代码列表 找到 objc4源码。 iOS_o…
2753
18
2