NSZombieEnabledな
-
19-09-2019 - |
質問
時に設定します NSZombieEnabled = Yes
には何も書き込まれませんのです。どうしたらいいですか?たき助言を行いその他のツール用 EXC_BAD_ACCESS
?
解決
あなたは、昔ながらのクラッシュを持っています。 EXC_BAD_ACCESSは、アプリケーションが無効なメモリアドレスにアクセスしようとしたことを意味します。非GC'd Objective-Cのアプリケーションで、このための最も一般的な理由は、ゾンビモードが検出さ割り当て解除後のオブジェクト、何かをメッセージングている間に(示されたように)、この特定のクラッシュが他の方法の任意の数を発生する可能性があります。
は、アプリケーションがクラッシュしているので、あなたは、バックトレースを持っている必要があります。あなたは、さらにあなたを助けることができるように私たちのすべてのためにここでそのバックトレースを投稿する必要があります。
ブラッドが言ったように、有効なデバッグを使用してアプリケーションを実行します。 Xcodeで、あなたは、「ファイル名を指定して実行」メニューの下の「実行/デバッグ」メニュー項目を見つけることができます。そのいずれかを使用します。ときに、アプリケーションがクラッシュし、デバッガウィンドウの左上隅にスタックトレースを参照してくださいする必要があります。
いや、本当に、彼らはデバッガに表示します。絵は千個の言葉の価値があります。
の
<サブ>(ソース: friday.com )サブ>
他のヒント
「EXC_BAD_ACCESS」は必ずしもゾンビインスタンスに関連していません。これは、ローカル変数のように、未定義の参照へのアクセスをリンクすることができます。
NSArray *array;
[array objectAtIndex:0]; // <- Will throw an error
の編集を NSZombieフラグのみが割り当て解除インスタンスを使用することによってトリガ「EXC_BAD_ACCESS」を解決するお手伝いをします。
バグを解決するために、あなたは間違っている場所を特定するためにクラッシュバックトレースを使用する必要があります。次に、あなたのコードの中に後方に移動して、すべての割り当てと割り当てを確認します。
また、あなたがそれらを使用する前に、nilにすべてのポインタを初期化することを確認してください!
あなたがnilまたは他のオブジェクトにそれを初期化せずにポインタを使用する場合は、、あなたはpropablyあなたではないメモリにアクセスして終了しようとしている。
たとえば次のコードはまた、最後の行によって引き起こさNSZombieEnabledフラグを用いて追跡可能でないEXC_BAD_ACCESSを与えるだろう。
RecordingLocation* closest;
//find the closest recording location
for (...)
{
//try to find the closest object...
//suppose we don't find anything so closest is never set.
}
if (closest!=nil)
NSLog(@"Closest: %f,%f",closest.x,closest.y);
私はこの質問への答えは本当に質問に答える方法を理解していない..
私は自分自身に同じことを求めています。私が代わりにEXC_BAD_ACCESSとクラッシュの、解放されたオブジェクトにアクセスするときに停止するようにNSZobmieEnabled = YESを有効にしているxcode4使用して - 。非常に便利です。
手の質問はします:
「私ははい、何もコンソールに書き込まれません= NSZombieEnabledを設定する。どのように私はこの問題を解決することができます...」ます。
シンプルでまっすぐます。
私は同じ問題が発生しています。 Xcodeのデバッガで停止しますが、コンソールには、任意のメッセージを生成しません。
:私はの線に沿って何かを期待します"割り当て解除インスタンスに送信されたメッセージ..." ます。
あなたは EXC_BAD_ACCESS のスタックオーバーフローの検索です、あなたは持つ人の数を見つけることができますあなたは持っている同じ問題。あなたがこれを打つ時間の大半は、あなたはメモリの問題が発生しています。 // WWW:あなたは、次のされている場合、プロトコルは、ここのか<のhref = "HTTP説明しました.frogameleon.com /ブログ/ここの最後の夜-iphone-ゾンビnszombieenabled - 保存 - 私の生命」のrel = 『nofollowをnoreferrer』>、あなたが送信されたメッセージのいずれかのレポートを見ていませんコンソール上でリリースされたオブジェクトに、それは別の何かかもしれません。
(| - ブレークポイントでデバッグラン)あなたは、デバッガでアプリケーションを起動しようとしたことがありますか?すぐにEXC_BAD_ACCESSを打つよう、デバッガが停止する必要があります。デバッガ(実行|デバッガ)に表示され、バックトレースを見れば、エラーが発生した場所、それはあなたが表示される場合があります。
。、私はこれを追加しようと思いましたEXC_BAD_ACCESS
が発生しますNSArray *arr = [NSArray arrayWithObjects:@"@dog","@cat",nil];
第二のparamに欠けている「@」に注意してください。私はしませんでした: - )
あったかの異なる経験EXC_BAD_ACCESSいたいと思います。
記の質問にもNSZombieEnabled確認いたのです。後の数時間苦労のシミュレータに、そのインストールする装置です。表示されたエラーメッセージからもらったデバッグのデバイスしたアルゴリダのホテルを表示
その後、いったんEXC_BAD_ACCESSエラーや不思議な行動から に名称変更 カップルの xibファイル す。を選んだのは、"ビューコントローラー'オブジェクトMainWindow.xibファイルを修正した ペン先の名前 物件です。その後、べた。
ういうわけではありませんEXC_BAD_ACCESSが見つからNSZombieを..
い場合も少なくなってきている結果で使用でゾンビ..
と思うだけEXC_BAD_ACCESSの利用に関連して発売のオブジェクトが表示可能なゾンビ.
が切り替わりますので、問題にもお話しましたとおりで使用でゾンビには:それは時に引き起こすこともありますの衝突によるデバッグ.一例ともまた重要であると言われた墜落を示:
*** -[MagazineWebview respondsToSelector:]: message sent to deallocated instance 0x58ce2a0
うみが可能NSZombie.
こんなことしていますが、
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
私の現在"MagazineWebview"オブジェクトおよび負荷指定された"リクエストURL]別の"MagazineWebview"オブジェクトです。のためのAchiving私の一部の機能の...
感謝