目标C语言 使用弱点的好处是什么,或者什么时候可以使用弱点



今天我读了一本关于ARC的书。所以有两种类型的点强和弱。我已经在他们周围找过了,找到了。但是我不明白为什么我们要用weak point而不是strong?这是一个简单的问题。请尽快告诉我。

谢谢。

首先它不是弱点,它的弱属性。假设你不想要一个特定对象的所有权你可以使用弱属性。如果该引用的实际所有者释放this并且其保留计数变为零,则弱引用将被自动赋值为nil。这将使你免于崩溃。

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

这个问题已经在apple的页面上得到了很好的回答!我只是把它链接起来,希望它真的帮助你得到所需的信息!

链接在这里:)arc

我也认为这个SO问题对理解事情很有帮助:[链接]这里(Objective-C ARC:强vs保留和弱vs分配)

为了简单起见,您可以使用"weak property"和/或"weak variable":

  1. 你不想占有对象的所有权。像delegate/dataSource一般被声明为weak。
  2. 你可以说你也可以用"assign"来代替"weak"。当变量从内存中释放时,使用"weak"会自动将其设置为nil,而"assign"现在指的是已释放的实例,如果你试图对它做一些事情,代码可能会崩溃。
  3. 避免保留周期导致内存泄漏。例如,避免在块中传递"self"。使用"__weak id weakSelf = self",现在在块中传递weakSelf。

ARC是你的朋友,但如果不注意上面提到的事情,它可能会造成潜在的危害。

最新更新