1

Objective-C でオブジェクトの割り当てが解除されないという問題があります。これはどこかに保持されているためだと確信していますが、どこにあるのかわかりません (retainCount が 0 であるべき場所をチェックすると、1 が返されます)。私は自分のコードを何度も調べてきましたが、リリースしていないコードを保持しているものを確認できませんでした。私が使用しているフレームワークのバグでさえあるかもしれません。

このようなものにどのように対処しますか?メモリを検索して、このオブジェクトを指しているものを確認して、なぜこのような状態になっているのかをかなり簡単に理解できると思いましたが、それを達成する方法がよくわかりません. 多分別の解決策?

4

3 に答える 3

8

Instrumentsは優れており、リークされたオブジェクトを検出できます、このような場合は、最初に Xcode 3.2 と Snow Leopard で新しく追加されたXcode Static Analyzerを使用することをお勧めします。(Leopard を使用している場合は、コマンドライン バージョンを使用できます。) 静的解析を使用すると、コードを実行しなくても非常に多くの問題を見つけることができ、多くの場合、Instruments よりもはるかに使いやすくなります。

于 2009-09-21T17:07:01.623 に答える
5

楽器を試しましたか?

于 2009-09-21T16:42:39.250 に答える
2

-retainと-releaseをオーバーライドしてから、ブレークポイントを設定して、誰がそれらを呼び出しているかを確認します。

于 2009-09-21T16:45:13.663 に答える