nsmutablestring を作成してから解放した場合、保持カウントは 0 になるべきではありませんか?
私の保持カウントは1のままです。
NSMutableString *text = [[NSMutableString alloc]init];
[text release];
NSLog(@"retain count %d ", [text retainCount]);
何か不足していますか?
ありがとう。
nsmutablestring を作成してから解放した場合、保持カウントは 0 になるべきではありませんか?
私の保持カウントは1のままです。
NSMutableString *text = [[NSMutableString alloc]init];
[text release];
NSLog(@"retain count %d ", [text retainCount]);
何か不足していますか?
ありがとう。
retainCount
オブジェクトのライフサイクル中の任意の時点で正しい値を返すという保証はありません。NSMutableString
usingを作成し、[[NSMutableString alloc] init]
それに対してreleaseを一度呼び出している場合は、正しいことを行っているので、心配する必要はありません。
Appleはそのドキュメントで、フレームワークと自動解放プールはオブジェクトを解放した場合でもオブジェクトを保持できるため、retainCountはメモリ管理の目的には役立たないと述べています。http://developer.apple.com/mac/library/documentation/Cocoa/Reference/Foundation/Protocols/NSObject_Protocol/Reference/NSObject.html#//apple_ref/occ/intfm/NSObject/retainCount
これはデバッグ目的で行っているため、カテゴリを使用してテスト コードを既存のクラスに追加することをお勧めします。オブジェクトを手動で保持または解放するときはいつでも、新しいメソッドを呼び出して、それを使用してメモリ使用量を追跡できます。