首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
Rober
掘友等级
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
103
文章 103
沸点 0
赞
103
返回
|
搜索文章
最新
热门
Weak的实现-&SideTables()[oldObj]
&SideTables()[oldObj]这是什么?很多人看到这里都被这操作搞蒙了,下面分三步来理解,分别是SideTables()、[oldObj]、&。先贴上入口的代码 1. 理解SideTables() 静态变量里面保存了所有的SideTable。的声…
Weak的实现(三)
这里将table.refcnts[this]即最后一位与SIDE_TABLE_WEAKLY_REFERENCED进行位或操作,这时候弱引用标志位变成1。 大概的讲是一个散列表SideTablesMap,以对象为key,SideTable为value。散列函数是 但这只是开始,它…
Weak的实现(二)
如果weak_table_t中存在当前对象的弱引用记录weak_entry_t,使用该方法在weak_entry_t添加新的weak_referrer_t。 在referrers找到第一个为nil的weak_referrer_t指针,新的weak_referrer_t赋值给它,…
Weak的实现(一)
创建weak引用的时候会走到runtime的objc_initWeak这个方法里面。通过符号断点可以验证。 该方法的主要目的是清除存储在entry中的weak_referrer_t,如果发现entry中一个weak_referrer_t也没有,就将整个entry从weak_ta…
个人成就
文章被点赞
9
文章被阅读
2,976
掘力值
121
关注了
5
关注者
2
收藏集
2
关注标签
43
加入于
2018-05-04