首页
沸点
课程
AI Coding
数据标注
更多
直播
活动
APP
插件
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
亮亮不想说话95888
掘友等级
iOS 开发工程师
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
5
文章 5
沸点 0
赞
5
返回
|
搜索文章
最新
热门
iOS OC 方法查找流程
上一篇关于方法的本质的探索中,我们知道了方法的底层是调用objc_msgSend发送消息,并对objc_msgSend的底层汇编进行了分析。当用汇编快速查找,未查找到方法缓存时,会调用 MethodTableLookup,然后调用_class_lookupMethodAndLo…
iOS OC 方法的本质
1. 方法本质初探 由此:我们可以简单得出,方法的本质是通过objc_msgSend发送消息,第一个参数为id消息接受者,第二个参数为sel方法编号。 通过clang查看cpp文件,发现函数不需要调用objc_msgSend,函数可以直接通过函数名(指针),找到函数的实现,不需…
iOS OC类原理二
因为rw中的属性 方法在编译期是没有的,是在运行时从ro中copy赋值到rw中。 猜测:cache_t cache 中存储的是方法的缓存。 1. cache_t cache LLDB 简单分析 通过打印cache_t cache,发现方法缓存确实存在cache_t cache中…
iOS OC 类原理一
1. 类和元类的创建时机 2. 指针偏移 3. 类的结构 可以看出,类是 objc_class类型的 结构体。 OC底层封装的C,objc_object是NSObject底层编译的写法。 objc_object和objc_class是底层的实现,对应当前NSObject(Cla…
iOS OC 对象原理探索三
1. isa指针结构 可以看出在不通架构中isa内成员所占字节也不相同,这些成员所占字节之和刚好是64位,8字节。每个成员多占位数和存储内存如下: 2. isa的初始化 isa是联合体,具有互斥性,对cls赋值,就不会对bits和isa内的结构体成员进行赋值。 在对新创建的is…
iOS OC 对象原理探索二
1. 数据成员对齐规则: 2. 结构体作为成员: 3. 收尾工作: 根据上面代码打印分析,我们很容易分析出 结构体struct和 结构体struct嵌套所占的内存,完全遵守内存对齐原则。
iOS OC 对象原理探索一
从上源码可以看出一个对象最少占用16字节,源码中8字节对齐,是为了让编译器更容易读取(空间换时间),防止野指针。 由源码看出,init底层其实什么也没有做,直接返回本身self,这样做的目的是为了让开发者在设计工厂模式的时候方便重写,方便扩展。
个人成就
文章被点赞
44
文章被阅读
34,958
掘力值
1,137
关注了
6
关注者
45
收藏集
2
关注标签
13
加入于
2019-12-14