弱(相对于强)​​对象引用的寿命是多少?

时间:2018-10-24 20:22:35

标签: objective-c swift memory-leaks closures automatic-ref-counting

这只是我的事... 我认为弱引用的寿命与该引用的范围(在函数内或全局)有关。

因此,我想知道,只要将数据处理保持在特定范围内,那么使用 strong 引用就可以了。正确?

我问...的原因是,有人告诉我,一个组织有一项默认情况下将阻止/关闭“弱化”的策略,以避免意外的保留周期。

1 个答案:

答案 0 :(得分:2)

  

一个组织的政策是阻止/关闭“弱”   默认,以避免意外的保留周期。

该组织可能会制定一项政策,将被块捕获的引用保持“弱”,以避免保留周期。复制保留为属性的块本身。

在非常特殊的情况下,一个块导致一个保留周期:该块指的是一个对象(自身或其他对象),而那个对象(直接或间接)保留了该块。

在大多数时候,我们通过检查知道哪些物体将保留一个块。假设这是“ objectA”。保留周期问题是:块中引用的任何对象是直接还是间接保留“ objectA”?那些对象,没有其他对象,必须声明为弱点才能在块中使用。

始终声明它们都是弱者将能胜任,但是,IMO将使以后的本代码读者担心作者对自己的代码没有足够的了解。