首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
一只煮熟了的鸭子
掘友等级
iOS
做一只热爱编程的monkey~
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
19
文章 19
沸点 0
赞
19
返回
|
搜索文章
最新
热门
有关于weak的底层实现
reinterpret_cast运算符是用来处理类型之间的转换,返回新类型的值,这个值会与原始参数(expression)有相同的bit位。 简单的在Xcode做个测试,成功的编译通过,不过一旦运行就会崩溃,产生“EXC_BAD_ACCESS”的错误,因为通过函数f所指的地址找…
深拷贝、浅拷贝再回首
浅拷贝:不拷贝对象本身,拷贝指向对象的指针,新指针指向被拷贝对象的内存地址。 深拷贝:拷贝新的对象和指针,指向新对象的内存地址,和被拷贝对象无关联。 1.对非容器类不可变对象进行copy,是浅拷贝,指向的对象的内存地址相同,指针地址不相同。 2.对非容器类不可变对象进行muta…
__unsafe_unretained 的理解和使用
如果你懂得__weak 和 __strong修饰词的含义,那么你可以继续看下去。 __unsafe_unretained和__weak一样,表示的是对象的一种弱引用关系,唯一的区别是:__weak修饰的对象被释放后,指向对象的指针会置空,也就是指向nil,不会产生野指针;而__…
cache_t之浅析
之前我们有探索过objc_class的结构,分析了属性、变量、方法的存储位置,接下来我们可以探索下cache_t的结构以及作用。 cache的功能就是对调用过的方法进行缓存,提高方法的查找速度。 2.自己类中查找不到,则会沿着继承链去父类里面遍历查找,如果每一次调用方法都要重复…
类的结构浅析
在日常开发中,我们接触到的最多的就是对象的初始化以及创建一个个我们需要的类,前面我们总结了对象的初始化流程,isa的相关知识,今天我们来总结下类的结构。 那么类的本质其实就是一个结构体对象。 通过上图可以猜测应该是存储在 class_data_bits_t bits,顺着源代码…
isa的初始化和指向分析
nonpointer:表示是否对isa开启指针优化 。0代表是纯isa指针,1代表除了地址外,还包含了类的一些信息、对象的引用计数等。 extra_rc:表示该对象的引用计数值,实际上是引用计数减一。例如:如果引用计数为10,那么extra_rc为9。如果引用计数大于10,则需…
内存对齐原则
1.平台原因(移植原因): 一些资料上是这样说的,“不是所有的硬件平台都能访问任意地址上的任意数据;某些硬件平台只能在某些特定地址处取某些特定的数据,否则就会抛出硬件异常”。也就是说在计算机在内存读取数据时,只能在规定的地址处读数据,而不是内存中任意地址都是可以读取的。 2.效…
alloc的初始化流程
嗯,看完流程图以后不知道该怎么描述了, 哈哈哈,总而言之,自己梳理梳理流程画画就大致清楚了,那么就整理下在梳理流程中的自己思考的一些问题吧。 Repairs an old vtable dispatch call site. vtable dispatch itself is …
个人成就
文章被点赞
6
文章被阅读
17,631
掘力值
393
关注了
41
关注者
9
收藏集
3
关注标签
11
加入于
2017-11-17