通常情况下,如果一个对象被解除分配,则所有弱引用都将被填充。
如果我们启用僵尸对象呢?
产品 - >编辑方案 - >启用Zombie对象
弱引用也会被填满吗?
否则,在正常情况下不会发生的错误将在启用僵尸对象
上发生我强烈怀疑,正如其中一个答案所说的那样,弱引用将被填补。
话虽如此,
How to fix the bug where viewDidScroll is called when UIViewController is already gone?并在那里回答其他建议。
答案 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)