0

nsmutablestring を作成してから解放した場合、保持カウントは 0 になるべきではありませんか?

私の保持カウントは1のままです。

NSMutableString *text = [[NSMutableString alloc]init];

[text release];

NSLog(@"retain count %d ", [text retainCount]);

何か不足していますか?

ありがとう。

4

3 に答える 3

6

retainCountオブジェクトのライフサイクル中の任意の時点で正しい値を返すという保証はありません。NSMutableStringusingを作成し、[[NSMutableString alloc] init]それに対してreleaseを一度呼び出している場合は、正しいことを行っているので、心配する必要はありません。

于 2010-07-05T15:06:49.333 に答える
1

Appleはそのドキュメントで、フレームワークと自動解放プールはオブジェクトを解放した場合でもオブジェクトを保持できるため、retainCountはメモリ管理の目的には役立たないと述べています。http://developer.apple.com/mac/library/documentation/Cocoa/Reference/Foundation/Protocols/NSObject_Protocol/Reference/NSObject.html#//apple_ref/occ/intfm/NSObject/retainCount

于 2010-07-05T15:07:17.417 に答える
1

これはデバッグ目的で行っているため、カテゴリを使用してテスト コードを既存のクラスに追加することをお勧めします。オブジェクトを手動で保持または解放するときはいつでも、新しいメソッドを呼び出して、それを使用してメモリ使用量を追跡できます。

于 2010-07-05T15:18:35.930 に答える