首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
iOS底层原理
低调的默认名
创建于2021-07-21
订阅专栏
探索iOS的底层原理
等 24 人订阅
共25篇文章
创建于2021-07-21
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
iOS底层学习 - 类的前世今生(二)
cache_t的底层是一个哈希表存在,用于缓存调用过的方法,提高查找速度,不用每次从class_data_bits_t进行遍历查找。用哈希表存储时,存储的位置是不确定的,空间也有一定的浪费,但是时间复杂度比较低,是典型的空间换时间 通过对objc_cache.mm源码的注释的阅…
iOS底层学习 - 类的前世今生(一)
通过clang命令编译main文件后得到cpp文件,可以发现,Class的底层结构是objc_class,里面有一个废弃的isa指针,所以不做研究. 属性方法等数据是存储在class_data_bits_t bits中,并且可以看到class_rw_t中的数据都是来自于此。且结…
iOS底层学习 - 初探类目、协议、扩展
分类只能增加方法,不能增加成员变量。 分类方法实现中可以访问原来类中声明的成员变量。 分类可以重新实现原来类中的方法,但是会***覆盖掉原来的方法***,会导致原来的方法没法再使用(实际上并没有真的替换,而是Category的方法被放到了新方法列表的前面,而原来类的方法被放到了…
iOS底层探索-准备工作
如果我们想知道对象到底是如果工作的,那一定一定是要看源码的,所以要准备源码资料如下源码Applesource源码下载Cooci大神配置源码命令行另外,只准备源码探究可能还不是那么清晰,我们可以将oc源
iOS底层学习 - OC对象前世今生
hasDefaultAWZ( )方法是用来判断当前class是否有默认的allocWithZone。 在对象的数据段data中,class_rw_t中有一个flags,RW_HAS_DEFAULT_AWZ 这个是用来标示当前的class或者是superclass是否有默认的al…