首页
AI Coding
沸点
课程
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
luin4
掘友等级
iOS高级工程师
iOS, Objective-C, Swift
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
12
文章 12
沸点 0
赞
12
返回
|
搜索文章
最新
热门
iOS 底层原理探索 文章汇总
一:底层探索方式+alloc&init探索+内存对齐01-iOS从main函数梳理底层知识点,并探索alloc&init02-探究内存对齐二:类结构体分析(isa,cache,bits)扩展1:obj
Xcode12 --- Cocoapods报错arm64
报错:升级Xcode12后,模拟器运行莫名报错:解决方法:
08-消息发送 --- 慢速查找流程
1)重要流程2-4. cls = realizeClassMaybeSwiftAndLeaveLocked(cls, runtimeLock); 3)核心流程2-8和9. resolveMethod_locked(inst, sel, cls, behavior); 3. 慢速…
07-消息发送 --- 快速查找流程分析
1. 首先我们定义个类文件, 实现两个方法并调用: 2. 接下来我们来利用xcrun命令来看下我们的调用方法被翻译成底层源码是什么形式: 1. 我们要看的是真机模式, 所以我们去arm64中查找相关实现, 注意查找ENTRY关键字, 这是汇编的入口, 详细注释如下图 2. 来看…
06-将手伸进objc_class中的cache, 看看我们调用的方法是如何缓存的?
因为在cache第一次缓存bucket时,分配的空间是4个,随着方法调用的增多,当存储的bucket个数 超过 capacity(总容量)的3/4, 就会进行capacity翻倍, 并清理旧缓存, 之后继续缓存新调用的实例方法.
05-探索方法的归属和isa的走向
那么联想到这里, 我们就能大概猜到, 当我们调用class_getInstanceMethod方法时, 它在源码里会根据传入的cls, 来查找它的结构体里有没有我们要获取的方法. 那我们在回过头来看class_getInstanceMethod(pClass, @selecto…
03 - 探索isa结构体
定义: 位域是一个==特殊类型的结构体==, 它会把xxx个字节中的二进位划分几个不同的区域, 并标识==每个区域的位数==, 每个域有一个域名, 允许在程序中按域名进行操作, 这样就可以把不同的对象用一个字节的二进制位域来表示. 缺点: 各个变量直接是互斥的. 包容性会比较差…
02 - 探究内存对齐
po 0x0000001200006261是乱码. 我们仔细观察0x0000001200006261, age是4个字节, c1, c2分别是1个字节, 那我们是不是应该分开你去打印呢:
01 - iOS从main函数梳理底层知识点,并探索alloc&init
![](https://p9-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/5078d9259a284cc1abc402bfbf1e568e~tplv-k3u1fbpf
个人成就
文章被点赞
16
文章被阅读
2,246
掘力值
96
关注了
10
关注者
3
收藏集
2
关注标签
0
加入于
2020-05-07