Objective-C弱引用僵尸

Objective-C weak reference zombie

我正在尝试创建一个僵尸对象来检测向已解除分配的对象发送消息。

假设我有一个强 属性 对象 A,它对对象 B 有一个弱引用。当 B 被释放时,我的弱引用变为 nil 但调用一个方法,例如 [obj1.obj2 somemethod] 只是 returns 没有导致崩溃。

有没有办法使用弱引用来测试僵尸?我只能使用 unsafe_unretained 崩溃。

Is there a way to test zombies using weak references

(我认为 "zombies" 你实际上是指悬挂指针...)

不直接,不。 ARC 弱引用的全部要点 是它们防止 悬空指针。 (正如你所说的那样,他们用 nil 安全地替换了潜在的悬挂指针——并且向 nil 发送消息不会受到惩罚。)

现实生活中可能会出现悬挂指针崩溃的原因是大多数 Cocoa 使用 ARC。 (正如您所说,它使用 unsafe_unretained。)