我正在调试一个在 Instrument 中使用 ARC 的应用程序。似乎如果Object A包含一个包含Object Bs 的数组,我需要removeAllObjects在实例变量上显式调用方法contents,这是一个NSArray.
- (void)dealloc {
NSLog(@"%@ deallocing", self);
[_contents removeAllObjects];
}
如果我要注释掉这一行[_contents removeAllObjects],仪器会显示数组中包含的对象在父对象被释放后仍然存在。我认为当NSArray释放它时,它会自动减少其中包含的元素的保留计数。那么为什么需要显式删除呢?这种行为是调试本身的副作用吗?