首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
leevi
掘友等级
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
5
文章 5
沸点 0
赞
5
返回
|
搜索文章
leevi
4年前
关注
OC底层探索(二十):类的实现<上>
类的加载过程 上一篇文章得到类值在realizeClassWithoutSwift方法是实现的 非懒加载 程序启动 dyld_start -> dispatch_init-...
0
评论
分享
leevi
4年前
关注
OC底层探索(十九):map_images
入口 分析 map_image 参数分析 count = objcImageCount,image的Count paths[] = imageFilePath,文件路径 m...
6
评论
分享
leevi
4年前
关注
OC底层探索(十八):_objc_init
前言 _objc_init是runtime初始化的函数,在os_objec_init之后调用 _objc_init里的具体实现 分析 这个很好理解,用一个静态变量标记有没初...
7
评论
分享
leevi
4年前
关注
OC地城探索(十七):C++构造方法 与 load 方法
为什么load方法在main方法之前 之前探索了dyld的链接流程,了解到了,在调用main函数之前,会先调用底层objc_init来初始化链接runtime 下面是obj...
0
评论
分享
leevi
4年前
关注
OC底层探索(十六):应用程序加载
应用程序加载 动态库和静态库 库:就是可执行代码的二进制形式,被操作系统载入到内存中 库在iOS系统中分为两种:静态库和动态库 静态库形式:.a 和 .framework ...
1
评论
分享
leevi
4年前
关注
OC底层探索(十五):反汇编消息转发
准备 mac 反汇编工具hopper 在lldb使用image list找到CoreFoundtion可执行文件 拖入到hopper中 打印堆栈,找到入口 反汇编 找到fo...
0
评论
分享
leevi
4年前
关注
OC底层探索(十四):消息转发
消息快速转发流程 forwardingTargetForSelector 如果我们也没有实现resolveInstanceMethod,查看log后可以看到之后调用了for...
1
评论
分享
leevi
4年前
关注
OC底层探索(十三):打印消息msgSendLog
开启log 在log_and_fill_cache,函数里,我们看到了objcMsgLogEnabled这个变量,显然都objcMsgLogEnabled = true时,...
0
评论
分享
leevi
4年前
关注
OC底层探索(十二): 消息动态决议
入口 当lookUpImpOrForward通过sel查找imp找不到时 根据汇编我们看到 behavior = LOOKUP_INITIALIZE | LOOKUP_RE...
1
评论
分享
leevi
4年前
关注
OC底层探索(十一):IMP慢速查找
CacheLookUp到慢速查找 之前我们探究了快速查找流程 但当缓存里找不到的时候,就会调用MissLabelDynamic MissLabelDynamic = obj...
0
评论
分享
leevi
4年前
关注
OC底层探索(十):IMP快速查找
objc_msgSend到CacheLookup 调用方法[person say] 前面我们已经知道调用方法就是发送消息,底层调用的就是objc_msgSend(perso...
0
评论
分享
leevi
4年前
关注
OC底层探索(九):cache 到 objc_msgSend
cache_t 读取流程分析 在 insert 方法打上断点,查看 发现写入缓存之前地调用的是log_and_fill_cache 再之前是lookUpImpOrForwa...
0
评论
分享
leevi
4年前
关注
OC底层探索(八):cache_t
cache_t的数据结构 成员变量 真机架构下常量 可以看出 cache_t与 buckets 很有关系 buckets 存的就是 sel跟 imp , 只是不同架构存到位...
0
评论
分享
leevi
4年前
关注
OC底层探索(七):isKindofClass & isMemberOfClass
问题 已知 LGPerson : NSObject, 以下打印是什么 打印结果 isKindOfClass分析 具体调用的函数 要想搞清楚这个问题,我们首先要知道isKin...
2
评论
分享
leevi
4年前
关注
OC底层探索(六):类的原理
runtime的优化 clean memory 是指加载后不会发生改变的内存 class_ro_t是属于 clean memory,是只读的 clean memory 可以...
0
评论
分享
leevi
4年前
关注
OC底层探索(五):类的结构
isa分析到元类 我们知道Class 是 objc_class*类型也就是一个指针,objc_class 是继承与 objc_object, 所以Class 也是有isa的...
2
评论
分享
leevi
4年前
关注
OC底层探索(四):对象的本质
准备 想要了解本质,需要用Clang将OC的类编译为底层的C/C++ Clang是基于LLVM的C/C++/Object-C的编译器,相当于是LLVM的前端 把⽬标 mai...
0
评论
分享
leevi
4年前
关注
OC底层探索(三):对象的内存
结构体内存对齐 内存对齐原则 结构(struct)(或联合(union))的数据成员,第⼀个数据成员放在offset为0的地⽅,以后每个数据成员存储的起始位置要从该成员⼤⼩...
2
评论
分享
leevi
4年前
关注
OC 中Runtime被修复的sel对应的imp
: 编译器优化
准备 汇编指令 在main函数中实现以上代码 加上断点,运行 查看汇编代码 可以使用 register read 来读取寄存器 w 表示32位的寄存器,x 表示64位的寄存...
0
评论
分享
下一页
个人成就
文章被点赞
31
文章被阅读
14,922
掘力值
703
关注了
0
关注者
15
收藏集
0
关注标签
20
加入于
2021-06-16