2

特定のView Controllerをプッシュすると、それをポップして、一見ランダムな回数繰り返し、アプリは最終的にエラーEXC_BAD_ACCESSでクラッシュします。

これは、毎回確実に再現できます。ほとんどの場合、View Controller をポップするのは 2 回目ですが、3 回目または 4 回目に発生することもあります。

そこで、NSZombieEnabled を設定して問題を確認することにしました。

ただし、これを有効にすると、クラッシュを再現できません。変更されたのは、アクティブな実行可能ファイルの構成で「NSZombieEnabled」の横にあるチェックボックスをオンにしたことだけで、アプリは完全に機能します。

これを引き起こしているアイデアはありますか?

ありがとう

4

1 に答える 1

2

シミュレーターの iPhone アプリでも同じ問題が発生しました。特定のView ControllerをポップするとEXC_BAD_ACCESSがスローされますが、NSZombieEnabledがオンになるとすぐにエラーは消えました。

絞り込むために、ポップされたView Controllerのdeallocのすべてのリリースをコメントアウトして、アプリがクラッシュしないようにし、再びクラッシュするまで一度に1つずつコメントを外して、問題の変数を明らかにしました.

私の場合、実際にはEXC_BAD_ACCESSをスローしていたのは変数のリリースステートメント自体でした

リリースしない以外に、そこから修正する方法を正確に伝えることはできません。コードを微調整してクリーンアップした後、正常に動作するようになりましたが、変更をロールバックしてエラーを再度取得し、正確な修正を絞り込もうとすると、問題を再現できませんでした。私は実際に最初のロールバックでそれを取得しましたが、二度と取得しませんでした。環境に配慮した何かが働いているのではないでしょうか?

これは正確な答えではありませんが、誰かを正しい方向に向けるかもしれません。

于 2011-02-04T06:50:21.613 に答える