iOS 内存管理底层探秘:深入剖析弱引用实现中的核心数据结构 Weak 2.SideTable。
Weak 1.原理解析
和 因为id本来就是带指针的,所以id其实就是两个,也就是weak指针的地址。 因为之前指向的是, 所以 这已经传入的是指向NSObject *指针的指针。 因为weakObject之前指向的是objectA,所以需要从objectA的sideTable中把weakOb...
Weak 5.out of line状态的判定
out of line状态的判定
Weak 3.SideTable的Hash值
Weak中的SideTable
weakSelf 和 strongSelf.
是用来解决循环引用 则是保证任何情况下self在超出作用域以后仍旧能够使用。 定义个自定义的类。通过跳转到这个,在里面的`来实现退出控制器。通过进入和退出来查看效果。 前置条件 上面的代码会导致死循环,不会被打印。拥有这个Block,这个Bock强引用,所以不会被销毁。
Weak 4.扩容和缩容的调取时机
添加和删除弱应用的指针是通过和来实现的。 初始容量为64,当容量达到3/4时对数组进行扩容,每次扩容为原来的2倍。。 调用重新对元素进行Hash值计算。 缩容规则当表大于1024但是只放了16分之一的数据的时候,就会缩容,缩小到原来的八分之一,调用重新对元素进行Hash...
dispatch_get_specific
和 用法就是用set方法在线程里设置一个key,通过get查找当前线程,是不是包含该key来判断代码是不是在特定的线程里执行。set则是给线程设置key值。 设置值。 两种方法查询线程里面包含的key值 :查询当前线程的key值。
Swift关键字Some:浑浊类型(Opaque return types)到清晰(Opaque types)的类型的转变
最近开始使用SwiftUI进行编程,我们总能看到body后面有个关键字some来修饰,那这个some到底是什么意思? 主要介绍Swift新引入的浑浊类型和清晰类型,以及加入关键字some以后,将浑浊类型变成清晰类型。
vi常用明令入门
日常开发必备的 Vim / vi 核心快捷键与操作命令汇总,涵盖光标移动、文件保存与高效编辑。
2021年6月2日
日子真的是过得很快,想写的东西太多,又不知道从何起笔,先留个这个post吧!加油!六月!