使用弱点的好处是什么?我们何时可以使用弱点?

时间:2014-03-21 04:05:19

标签: objective-c automatic-ref-counting weak-ptr

今天我读了关于ARC的书。所以有两个类型点,包括强点和弱点。 我已经搜索了他们的财产并得到了它。 但是,我无法看到或理解为什么我们使用弱点而非强势? 这是一个简单的问题。请轻松告诉我。

感谢。

3 个答案:

答案 0 :(得分:1)

首先,它不是弱点,它的弱势属性。假设您不希望拥有特定对象的所有者,您可以使用弱属性。如果此引用的实际所有者释放此并且其保留计数变为零,则弱引用将自动分配给nil。这将使您免于崩溃。

您可以在此处获取更多信息:https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/ProgrammingWithObjectiveC/EncapsulatingData/EncapsulatingData.html

答案 1 :(得分:0)

这个问题在苹果页面上得到了很好的回答! 我将链接它,希望它真的帮助您获得所需的信息!

链接在这里:) arc

我认为这个问题对于理解这些事情非常有帮助:[link] here(Objective-C ARC: strong vs retain and weak vs assign

答案 2 :(得分:0)

简单来说,您可以使用“弱属性”和/或“弱变量”来执行以下操作:

  1. 您不想拥有对象的所有权。就像delegate / dataSource一般被宣告为弱。
  2. 你可能会说你也可以使用“assign”而不是“weak”。当变量从内存中释放时,使用“weak”会自动将其设置为nil,而“assign”现在指的是解除分配的实例,如果您尝试对其执行某些操作,代码可能会崩溃。
  3. 避免保留周期导致内存泄漏。例如,避免在块中传递“self”。使用“__weak id weakSelf = self”,现在在块中传递weakSelf。
  4. ARC是你的朋友,但如果不处理上述事情,可能会造成潜在伤害。