2011-07-16 2 views
1

2つのオブジェクト(idと宣言)を含む構造体を返すコードがあります。 オブジェクトの1つを使用しようとすると、EXC_BAD_ACCESSが表示され、アプリケーションがクラッシュします。これは、シミュレータにないデバイス(ipad)でのみ発生します。デバイスでのみEXC_BAD_ACCESSをデバッグする方法

NSZombieEnabledをYESに設定しましたが、情報はコンソールに書き込まれません。 Xcode 4のワークスペース、私のアプリケーションのプロジェクト、私のアプリケーションで使われているライブラリをビルドするのに問題があるかどうかはわかりません。 EXC_BAD_ACCESSは2番目のプロジェクトで発生しているので、NSZombieEnabledが2番目のプロジェクトに適用されるかどうかはわかりません。

どうすれば解決できますか?特に私はそれがデバイス上でしか起こらないので(シミュレータでは計画どおりに進んでいます)、それは2番目のプロジェクトにありますか?

EDIT:EXC_BAD_ACCESSはsortRange.lowerに、ライン62上で、発生This is the method - あなたがそれにアクセスしようとしている前に、あなたのオブジェクトの一つが自動解放されているようです

答えて

0

。 iPadはあなたがそれを実行しているコンピュータよりも少ないメモリしか持っていないので、速くリリースされるので、利用できないのです。エラーが発生している行の直前にあるNSLog両方のオブジェクトを試してみてください。そのうちの1つが問題であり、元に戻って何らかの形で保持していることを確認してください。また、あなたがそれを使用し終わった後にリリースすることを忘れないでください。いくつかのコード例が役に立つでしょう。

+0

私はそれらを一見作成するメソッドによって返された直後にオブジェクトをNSLogし、EXC_BAD_ACCESSを取得します。 –

+0

オブジェクトを 'return [yourObject retain];'として返してください。それは役に立ちますか?もしそうなら、 '[yourObject release];を実行するのを忘れないでください。 –

+0

問題は、メソッドが保持できない構造体を返し、2つのオブジェクトが含まれていることです。また、構造体を返すメソッドは、NSPredicateのカテゴリ拡張であり、デバッグ時にそのメソッドに入ることはできないようです。 –

1

NSZombieEnabledはデバイスではなくシミュレータ上でのみ動作するため、おそらく問題が隠れています。 Run Product> Analyze(⇧⌘B)をクリックして手がかりを探します。コードを見ずにもっと言い表すのは難しいです。 Mihaiの言うとおり、あなたのオブジェクトはおそらくEXC_BAD_ACCESSの最も一般的な原因であるリリースされています。

関連する問題