引用计数加减获取的方式怎么不一样?

来源:6-5 引用计数管理相关面试问题

慕斯卡4383274

2021-06-03

size_t &refcntStorage = table.refcnts[this] 加
refcntStorage += 4

RefcountMap::iterator it = table.refcnts.find(this);减
it->second -= 4

为什么不一样???

写回答

1回答

于海

2021-06-03

同学,你好,这个代码片段是哪里的呢?建议在课程qq群中我们讨论下

0
1
慕斯卡4383274
SideTable& table = SideTables()[this]; size_t refcnt_result = 1; table.lock(); RefcountMap::iterator it = table.refcnts.find(this);//这里 if (it != table.refcnts.end()) { // this is valid for SIDE_TABLE_RC_PINNED too refcnt_result += it->second >> SIDE_TABLE_RC_SHIFT; } size_t& refcntStorage = table.refcnts[this];//这里 if (! (refcntStorage & SIDE_TABLE_RC_PINNED)) { refcntStorage += SIDE_TABLE_RC_ONE; } qq申请了,麻烦同意下谢谢
2021-06-03
共1条回复

资深大牛带你深度剖析ios高级面试

从BAT/TMD名企真题入手,结合源码及应用,构建完整iOS知识体系

1749 学习 · 600 问题

查看课程