2011-12-08 4 views
1

私はコアデータに次の問題があります。コアデータの関係によってEXC_BAD_ACCESSが発生しましたか?

「次へ」という1対1の関係を含むエンティティでは、この「次へ」関係を使用して、1つのインスタンスから次のインスタンスに移動するアクションを実行します。これは正常に動作します。次のコードを使用して

error=nil; 
[context save:&error]; 
NSLog(@"Error:%@",error); 

を私は私のデータを問題なく保存されているGDBの下で確認してください。

トラブルが発生したときです。シミュレータを閉じた後(Command-Qを使って);アプリケーションを再起動すると、このエラーが発生します(gdb)。 プログラム受信信号: "EXC_BAD_ACCESS"。このクラスは、キー値コーディング準拠のキー次

のためではありません :

item=[item valueForKey:@"Next"]; 

そして、私は、デバッガでいくつかのことを見てきたいくつかの点で似:次のコード行を実行しようとしたとき それが起こります

Command-Qでアプリを閉じる前にすべてのことが完璧に機能するので、私のコードは100%間違ってはいけませんが、明らかにいくつかのバグもあります。 これが明らかになる理由はありますか?

実際には、これが明らかでない場合。私は、問題を説明するための小さなサンプルプロジェクトを作成しました。そのプロジェクトを見るには時間と関心があります。 1から3までのカウンターが表示され、カウンターを前後に動かすための2つのボタンがあります。しかし、このサイトでこのようなサンプルプロジェクトをアップロードする方法についてはわかりません。

この時点で、私はいくつかのバグを見つけようとしているInstrumentsを使い始めましたが、これまでは全く成功していませんでした。プログラムは、私がコアデータを使用する方法の間違いのためにいくつかのトリッキーな問題を疑う。

答えて

1

ほとんどの場合、あなたがヒットしたラインEXC_BAD_ACCESSは赤いニシンです。しかし、それはいくつかの手がかりを提供することができます。

あなたはここでは具体的に何をしているのかについて考えてください:

item=[item valueForKey:@"Next"]; 

あなたにvalueForKeyの結果を割り当てている元itemにどうなりますか?オートレリースされたオブジェクトでなければ、そこに問題があります。

とにかく、まずバットから、私が今述べた問題をチェックアウトしてください。次に、アナライザーを実行します。その後、問題をすべて解決しても問題が解決しない場合は、InstrumentsでLeaksツールを実行してください。

finding reason for EXC_BAD_ACCESS - in Xcode4

Random EXC_BAD_ACCESS in a place that it cannot happen

+1

ありがとう:これらのエラーと解決する方法についてステップバイステップのインストラクションを引き起こすものに優れたリンクとともに詳細について

は、これらの質問に対する答えを見てみましょうそれは私がチェックアウトしなければならない興味深い点の束のようです。その間、私は、私の抱えている障害を説明するためのサンプルプロジェクトを作成しました。 itemは単なるポインタ(ループ状のデータ構造内)であり、割り当てられていないので、メモリの問題があるとは思わない。 – Michel