NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
myClass *obj = [[myClass alloc] init];
NSArray *ar = [NSArray array];
[ar addObject: obj];
[ar removeObject: obj];
[pool drain];
NSArray配列からオブジェクトを削除すると、以前に割り当てたメモリが自動的に解放されますか?その答えは、私がさまざまな情報源から見いだしたことから肯定的なようです。問題は、メモリリークをテストしても、xcodeはobjが解放されていないと不平を言うことです。実際に何が起こっているのですか?NSArrayからオブジェクトを削除すると、自動的にそのメモリが解放されますか?
ありがとうございます、あなたの助けは大いに感謝しています。 =) – hollow7
"NSArray配列からオブジェクトを削除すると、以前割り当てたメモリが自動的に解放されますか?" - 厳密に答えはいいえです。あなたが割り当てたメモリは解放されず、配列自体が送信した保持を解放するだけです。 –
あなたの "ノート"は誤解を招く可能性があることに注意してください。プールが排水されると、配列は 'release'を受け取りますが、その中にあるオブジェクトは他のものによっても所有されています。 –