の使い方がよくわかりませんautorelease
;
NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init];
RetainTracker* tracker = [RetainTracker new];
[tracker retain];
[tracker retain];
[tracker autorelease];
[pool release];
上記のコードにメモリリークはありますか?
の参照カウントを変更せずに、にautorelease
入れるだけであることは知っています。を呼び出すと、オブジェクトは 1 つのメッセージを受け取り、次に の参照カウントはです。そのため、コンパイラは object の関数を呼び出すことができないため、メモリ リークが発生します。tracker
NSAutoreleasePool
tracker
[pool release]
release
tracker
2
dealloc
tracker
だから私はこれを取得します:私たちは同時に電話する必要がretain
ありrelease
ます、それは正しいですか?