首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >关于ARC,在下面的代码中,Kraken是否强烈地引用了Sucker?

关于ARC,在下面的代码中,Kraken是否强烈地引用了Sucker?
EN

Stack Overflow用户
提问于 2017-05-31 16:31:40
回答 1查看 26关注 0票数 1

我正在阅读Swift中的ARC,以更好地理解内存分配和去分配。在我正在读的下面的博客中,我知道Kraken强烈地提到了Tentacle,然后Tentacle强烈地提到了Sucker,但是我很想知道Kraken是否和Sucker有很强的关系?

以下是代码:

代码语言:javascript
复制
class Kraken {
    let tentacle = Tentacle() //strong reference to child.
}
class Tentacle {
    let sucker = Sucker() //strong reference to child
}
class Sucker {}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-31 16:38:50

不,没有。sucker对象的引用计数仍然是1Kraken一松开tentaclesucker也会消失;)

换句话说,间接强引用不会增加ARC内存管理器使用的ref计数器。

快速测试:

代码语言:javascript
复制
let kraken = Kraken()
let refCount = CFGetRetainCount(kraken.tentacle.sucker)
print("ref count: \(refCount)")

产出:

参考数:2

因为它还包括由1函数参数保留的引用,所以您应该将其读入为CFGetRetainCount

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44290178

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档