1

要するに、私はNSZombiesの初心者です。今まで、それらなしですべてのメモリの問題を解決することができたので、私はそれらを使用してデバッグを試み始めました。

今、私は得ています...

[UIImage isKindOfClass:]: message sent to deallocated instance 0x8095f10

そのポイントを私のコードの行に向ける方法はありますか?つまり、クラッシュ/不正アクセスエラーが発生するよりも大幅に改善されていますが、それでも、ある種のUIImageメモリの問題に限定されています。理想的には、「yクラスの行xで作成したUIImageは、割り当て解除後にisKindOfClassメッセージを送信された」と言いたいです。

また、そもそもisKindOfClassをUIImageに送信することを使用しているコードはどこにもないと確信しています。UIImageはそのコード内のどこかでそのメソッドを使用しますか?

編集:タグを更新しました。誤って古い質問からのタグがありました。

4

3 に答える 3

3

Instrumentsを使用してiOSシミュレーターでアプリを実行し、ゾンビオプションを選択します。

問題の原因となる条件を再作成すると、システムシンボルが非表示になっている逆スタックトレースを確認できるはずです。これにより、コード内でゾンビが参照された場所に直接移動できます。割り当てが解除された場所がわからない場合もありますが、エラーの範囲を絞り込むのに役立ちます。

于 2012-09-19T16:13:53.337 に答える
0

私自身は初心者として、View Controllerを離れる前にデリゲートを無力化できなかったときに、ゾンビがオンになっているこのエラーが発生したことをお知らせします。たとえば、someObject.delegate = selfがある場合、viewWillDisappearでsomeObject.delegate = nilを設定することで、このエラーを回避できます。

于 2012-09-19T15:50:36.050 に答える
0

XcodeのExceptionブレークポイントを叩くと、Objective-Cスコープからlongjmp()外れず、すべてのスコープから外れることなく例外が発生したときに状態が保持されるため、ゾンビ(およびその他の例外、C ++およびObjective-C)がキャッチされます。にmain()

これは、シミュレータとデバイスの両方で機能します。プロジェクトのコードの最初の行を配置することから、このブレークポイントをほぼオンにしています。

于 2013-06-06T09:22:12.953 に答える