Weak的实现-&SideTables()[oldObj]

&SideTables()[oldObj]这是什么?很多人看到这里都被这操作搞蒙了,下面分三步来理解,分别是SideTables()[oldObj]&。先贴上入口的代码

id oldObj;
SideTable *oldTable;

oldObj = *location;
oldTable = &SideTables()[oldObj];

阅读全文

Weak的实现(一)

本文较长分三篇按序阅读体验更佳,第四篇为辅助阅读按需看

  1. Weak的实现(一)
  2. Weak的实现(二)
  3. Weak的实现(三)
  4. Weak的实现-&SideTables()[oldObj]

带着问题看源码:

  1. 大家都知道weak的底层实现是一个散列表,那么散列表的结构是什么样的?
  2. 散列表的key是什么,value是什么,散列函数是怎样的?
  3. 通过几次查找才能找到对应的弱引用?
  4. 如何查找弱引用对象的引用计数?
  5. 一个对象对应一个SideTable表而一个SideTable对应多个对象,为什么这样设计

阅读全文

作者的图片

董二千

愿你走出半生 归来仍是少年

iOS Developer

China