0

私は現在iTunesUを介してCS193Pのレッスンを行っていますが、先生はこのBuild and Analyzeオプションについて何度か言及しました。彼はそれが素晴らしいツールであり、遊ぶのが楽しいと言った。
それで試してみたところ、うまくいかないか、どのように機能するのかわからないことに気づきました(最後の選択肢だと思います)。
いくつかのメモリリークがありますが、警告はまったくありません。オンラインで、リークであることを示す青いものが表示されるはずだとわかりましたが、実行しているのに何も表示されませんNSDictionary *dict = [[NSDictionary alloc] init];

それはどのように機能するはずですか?私がインターネットで読んだことから、それは潜在的なリークの合図になるはずだと思いました。私は何が間違っているのですか?

XCode3.2.5を使用しています。

ありがとう。

アップデート:

これは一種のバグだと思います。
のようなインターフェイスでこれを宣言してNSDictionary *dict;初期化すると(ただし、割り当てを解除する場所はありません)、何も表示されません。

で宣言して初期化し、 - (void) init次のようにリリースしない場合:

- (void) init {
    if(self = [super init])
        NSDictionary *dict = [[NSDictionary alloc] init];
    return self;
}

リークの合図です。なんで?これは私の設定によるものですか?これはバグですか?バグの場合、どこでどのように報告すればよいですか?

4

2 に答える 2

1

割り当てを解除していないため、警告が表示されます。

-(void)dealloc{
   [super dealloc]; 
   [dict dealloc];
}

オブジェクトを作成するとすぐに解放できるはずなので、警告は表示されません。アナライザーの目標は、コードでリークが発生する可能性があることを警告することです。

を使用するかautorelease、手動で作成したオブジェクトの割り当てを解除することができます。

PS、少し好奇心:なぜXcode 3.2.5を使用しているのですか?

そのバージョンが可能かどうかは正確にはわかりませんが、最新バージョンのXcodeでは、そのツールを実行すると、次のような説明付きの矢印を使用して、割り当てを解除しているオブジェクトを確認できます。

于 2012-06-23T17:56:59.783 に答える
0

Xcodeを再起動して再起動すると元に戻ることがわかりました。

于 2013-05-08T05:39:30.143 に答える