iOS笔记 - retainCount源码解析
引用计数源码解析
1 - 64bit 下的引用计数存放在 isa 中
2 - 打开源码:查看引用计数的具体实现
① 打开 SideTable 可以看到引用计数的缩写 refcnts 是一个存放对象引用计数的散列表
② 接下来走一遍底层函数 rootRetainCount
③ 打开 sidetable_getExtraRC_nolock 可以看到返回的引用计数
结论:在 64bit 中引用计数可以直接存储在优化过的 isa 指针中的 extra_rc;也可能存在 has_sidetable_rc 中,通过一系列操作对散列表中的引用计数实现+1/-1