如果我们启用僵尸对象,是否所有弱引用都被填充?

时间:2013-12-06 07:42:52

标签: objective-c xcode

通常情况下,如果一个对象被解除分配,则所有弱引用都将被填充。

如果我们启用僵尸对象呢?

产品 - >编辑方案 - >启用Zombie对象

弱引用也会被填满吗?

否则,在正常情况下不会发生的错误将在启用僵尸对象

上发生

我强烈怀疑,正如其中一个答案所说的那样,弱引用将被填补。

话虽如此,

How to fix the bug where viewDidScroll is called when UIViewController is already gone?并在那里回答其他建议。

1 个答案:

答案 0 :(得分:2)

即使启用Zombie Objects,弱引用也将设置为nil

我测试了这样:

id __weak o;
@autoreleasepool {
    id ob = [[NSObject alloc] init];
    o = ob;
    NSLog(@"Weak ref before release %@", o);
}
NSLog(@"Weak ref after release %@", o);

启用或不启用Zombies时,会发生相同的输出:

2013-12-05 23:55:35.571 WeakPointers[93840:303] Weak ref before release  
2013-12-05 23:55:35.572 WeakPointers[93840:303] Weak ref after release (null)