首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
Cocci
订阅
框框
更多收藏集
微信扫码分享
微信
新浪微博
QQ
6篇文章 · 0订阅
iOS 从源码解析Runtime (十):聚焦cache_t objc-msg-arm64.s补充(3)
终于来到了我们最核心的 objc_msgSend 函数。 查找 IMP。 未找到 IMP 时的结束工作。 即我们日常使用的 [super xxxxx] 函数调用,它的第一个参数 receiver 同样是我们的 self 并不是 self 的父类,而它与 _objc_msgSen…
iOS 从源码解析Runtime (九):聚焦cache_t objc-msg-arm64.s解析(2)
把指定的 sel 和 imp 插入到 cache_t 中,如果开始是空状态,则首先会初始一个容量为 4 散列数组再进行插入,其它情况插入之前会计算已用的容量占比是否到了临界值,如果是则首先进行扩容,然后再进行插入操作,如果还没有达到则直接插入,插入操作如果发生了哈希冲突则依次进…
iOS探索 alloc流程
data()->ro->instanceSize就是获取这个类所有属性内存的大小。这里只有继承NSObject的一个属性isa——返回8字节 简单画了个示意图,上边是紧紧挨着,下面是8字节为一格。如果cpu存数据的时候紧紧挨着,读取的时候要不断变化读取长度,所以这时候就采用了空…
iOS 编译详解 LLVM Clang
从上图我们可以知道,编译型语言需要在运行之前就将代码全部编译好,最终运行的文件是编译后的可执行文件。我们将编译型语言所使用的编译方式称为 AOT (Ahead of time) 预先编译。 而直译式语言则是在运行的过程中,一边编译一边执行,最终运行的文件其实就是一开始写的源代码…
类在内存存储
1、实例化对象后,指针变量p1放在栈区(lldb)po&p10x00007ffeeba541602、读取栈地址内存可以看到p1的值,p1指针的值是一个堆地址,里面放着LGPersonisa指针(lld
iOS_objc4-756.2 最新源码编译调试
以上资料都可以在 Apple source 获取到。 把找到的文件加入到工程里面。例如: