首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
leevi
掘友等级
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
5
文章 5
沸点 0
赞
5
返回
|
搜索文章
最新
热门
OC底层探索(二十):类的实现<上>
类的加载过程 上一篇文章得到类值在realizeClassWithoutSwift方法是实现的 非懒加载 程序启动 dyld_start -> dispatch_init-> libsystem_in
OC底层探索(十九):map_images
入口 分析 map_image 参数分析 count = objcImageCount,image的Count paths[] = imageFilePath,文件路径 mhdrs[] = image
OC底层探索(十八):_objc_init
前言 _objc_init是runtime初始化的函数,在os_objec_init之后调用 _objc_init里的具体实现 分析 这个很好理解,用一个静态变量标记有没初始化过,已经初始化了的话,直
OC地城探索(十七):C++构造方法 与 load 方法
为什么load方法在main方法之前 之前探索了dyld的链接流程,了解到了,在调用main函数之前,会先调用底层objc_init来初始化链接runtime 下面是objc_init的源码 stat
OC底层探索(十六):应用程序加载
应用程序加载 动态库和静态库 库:就是可执行代码的二进制形式,被操作系统载入到内存中 库在iOS系统中分为两种:静态库和动态库 静态库形式:.a 和 .framework 动态库形式:.framewo
OC底层探索(十五):反汇编消息转发
准备 mac 反汇编工具hopper 在lldb使用image list找到CoreFoundtion可执行文件 拖入到hopper中 打印堆栈,找到入口 反汇编 找到forward_prep 查看伪
OC底层探索(十四):消息转发
消息快速转发流程 forwardingTargetForSelector 如果我们也没有实现resolveInstanceMethod,查看log后可以看到之后调用了forwardingTargetF
OC底层探索(十三):打印消息msgSendLog
开启log 在log_and_fill_cache,函数里,我们看到了objcMsgLogEnabled这个变量,显然都objcMsgLogEnabled = true时,系统可以打印msgSend的
OC底层探索(十二): 消息动态决议
入口 当lookUpImpOrForward通过sel查找imp找不到时 根据汇编我们看到 behavior = LOOKUP_INITIALIZE | LOOKUP_RESOLVER, 所以 beh
OC底层探索(十一):IMP慢速查找
CacheLookUp到慢速查找 之前我们探究了快速查找流程 但当缓存里找不到的时候,就会调用MissLabelDynamic MissLabelDynamic = objc_msgSend_unca
下一页
个人成就
文章被点赞
31
文章被阅读
14,113
掘力值
702
关注了
0
关注者
15
收藏集
0
关注标签
20
加入于
2021-06-16