首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
初心
掘友等级
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
0
文章 0
沸点 0
赞
0
返回
|
搜索文章
最新
热门
OC底层原理(8)-cache_t原理(随记)
0x100002658 + 0x10 = 0x100002668;因为0x100002668是cache_t的指针地址,所以读取地址时需要加(cache_t *) 进行转换,最后我们看到cache_t 的内容。看到只有 _buckets 有内容,于是就开始打印 很神奇的发行啥也…
OC 底层原理(7)- 类原理(类的属性存储,类的方法存储)(随记)
现在我们需要找到hobby 和 name 存储的位置,差不多可以猜测这两个属性最有可能存储的位置在bits内,但目前看来 bits全是0 没法看,所以在这过程中就需要用到指针偏移来获取我们想要的数据。bits 的地址为:isa(8字节) + superclass(8字节) + …
OC 底层原理(6)-类原理(指针内存偏移,类的结构)(随记)
看到两个变量赋值一个常量,答应值和地址时,值一样地址不一样,对于此称之为值拷贝;&a 的意思是,指向这个变量的地址。 此时对象的内存空间完全不一样,是因为在alloc的过程了两个对象申请的是不同的内存空间,&p1 的意思是,指向这个对象指针的地址。 上图想表达的就是,打印的第一…
OC 底层原理(5)- 对象原理(isa 的走位分析,对象的本质)(随记)
根据上图我们可以确定的是,类在内存里面只会存在一份。那接下来就分析一下类的内存结构(见下图) 由上图可以看到,类的第一个内存地址竟然也是LGPerson,难道又绕回去了?当然不是,我们可以称类的第一个内存所指向的为元类。 现在就出现了3个名词:对象,类,元类。 对象:根据类实例…
OC 底层原理(4)-对象原理( 符号表绑定,objc_alloc探索,isa关联对象与类)(随记)
在第一篇中有贴出过 alloc 实现的整个流程图,alloc -> _objc_rootAlloc -> callAlloc -> ... 那为什么会出现这个情况呢,这是因为在系统里面本身就做了一个符号绑定。 就相当于 objc_alloc 绑定到了 alloc 的 sel;换…
OC 底层原理(3)- 对象原理(isa关联类,联合体,位域分析 )(随记)
根据上图看 !nonpointer 是,其中只对 cls 赋了值,然后就没有其他信息了,再看 else 的内存可以看到的是,除了 shiftcls 还有其他信息,比如bits,has_cxx_dtor,这就是 !nonpointer 判断的意义点了 。 首先我们看到这个结构体是…
下载并配置alloc所在的动态库开源的源码(objc)
搜索objc,选择要下载的版本。 3)查看报错信息,下载缺少头文件,并将下载的include 放到工程中。下载链接: https://pan.baidu.com/s/1CwO56Rpl9mtT3gp-Ruql6w 提取码: qwfn
OC 底层原理(2)- 对象原理(内存对齐与 calloc 分析)(随记)
由 0x0000001200006261 可以引出内存优化---内存拼接和内存对齐。 储。 成员的整数倍.不足的要补⻬。 上图打印不同的数据结构,数据结构内所存的数据内容一样,但排序不一样,数据结构所占的内存大小也不一致(---二进制重排接与内存对齐)。 注:LGPerson …
OC 底层原理(1)-对象原理( 对象的创建)(随记)
从结果可以总结为,p1,p2,p3 指向同一个内存空间,但创建出来的三个对象的指针地址是不同的。 因为 alloc 创建实例对象的同时也申请了一块内存空间,p1,p2,p3是分配的3个对象的指针,因此 p1,p2,p3 属于同一个对象并都指向这块内存空间。 2)第二种方式:选择…
数据结构与算法(2)- 单向循环链表
一、链表模型二、定义结点三、循环链表创建第一种方法:第一种方法:四、遍历循环链表五、循环链表插入元素五、循环链表删除元素六、循环链表查找元素1、根据值查位置2、根据位置查值
下一页
个人成就
文章被点赞
16
文章被阅读
20,002
掘力值
531
关注了
5
关注者
8
收藏集
0
关注标签
12
加入于
2020-03-02