2

どのオブジェクトがターゲット オブジェクトを保持しているかを知る方法はありますか?

ARC を使用していますが、オブジェクトの割り当てが解除されるべきなのになぜ解除されなかったのかわかりません。このオブジェクトをまだ保持しているオブジェクトを見つけたいです。しかし、どのように?

Instruments を使用してみましたが、メモリ リークの問題はありません。プロジェクト全体をチェックしましたが、保持サイクルが見つかりません。どのオブジェクトがこのオブジェクトを保持しているかを知るにはどうすればよいですか?

4

2 に答える 2

3

保持メソッドをオーバーライドして、コール スタックをログに記録できます。これにより、コール スタック バックトレースがログに記録されます。

- (id)retain {
    NSLog(@"%@", [NSThread callStackSymbols]);
    return [super retain];
}
于 2013-11-04T11:32:05.050 に答える