現在、InstrumentでARCを使用するアプリケーションをデバッグしています。Object A
sを含む配列が含まれている場合は、インスタンス変数でメソッドObject B
を明示的に呼び出す必要があるようです。これはです。removeAllObjects
contents
NSArray
- (void)dealloc {
NSLog(@"%@ deallocing", self);
[_contents removeAllObjects];
}
行をコメントアウトすると[_contents removeAllObjects]
、Instrumentsは、親オブジェクトの割り当てが解除された後も、配列に含まれているオブジェクトがまだ生きていることを示します。NSArray
割り当てを解除すると、それに含まれる要素の保持数が自動的に減ると思いました。では、なぜ明示的な削除が必要なのですか?この動作は、デバッグ自体の副作用ですか?