2011-10-24 26 views
0

私はいくつかのデータをサーバーから取得中に以下のエラーが発生しました。データをフェッチしている間、アクティビティインジケータ付きのカスタムアラートビューを表示します。アラートはメインスレッドを使用し、データフェッチはNSThreadによって行われます。この問題は、常にではなく、しばらくの間しか発生しません。私は何をすべきか理解できません。アプリケーションが終了しました - キャッチされない例外 'NSGenericException'、

*キャッチされない例外により 'NSGenericException'、理由にアプリを終了:

* '列挙されながら*コレクションが変異した( ""、 ""、 "" )'。最初のスローでのコールスタック: (

0 CoreFoundation      0x00f2abe9 __exceptionPreprocess + 185 
1 libobjc.A.dylib      0x0107f5c2 objc_exception_throw + 47 
2 CoreFoundation      0x00f2a6a9 __NSFastEnumerationMutationHandler + 377 
3 UIKit        0x00371b8e -[UIView(Hierarchy) _findFirstSubviewWantingToBecomeFirstResponder] + 189 
4 UIKit        0x00366a13 -[UIView(Hierarchy) _promoteDescendantToFirstResponderIfNecessary] + 42 
5 MyApplnName      0x00015154 -[SecondViewController getDataFromServer] + 1798 
6 Foundation       0x000a1d4c -[NSThread main] + 81 
7 Foundation       0x000a1cd8 __NSThread__main__ + 1387 
8 libSystem.B.dylib     0x928db7fd _pthread_start + 345 
9 libSystem.B.dylib     0x928db682 thread_start + 34 

は、削除または一部を追加するあなたは、例えば、for-loopfor (id _obj in object))を使用してNSMutableArrayまたはNSMutableSetを、いくつかのobjectを列挙「NSException」

+0

を:あなたのコードでありますあなたは 'foreach item in collection'のようなことをやっていると同時にループ本体のコレクションを変更しますか? – Ankur

+0

コードを表示してください。 – macbirdie

答えて

2

問題は、あなたのコードの一部であるのインスタンスを投げた後、そのループ内で呼び出さTERMINATEオブジェクトを同じobjectに割り当てます。可能ではなく、exceptionが発生します。

あなたはforループインデックス変数使用しているため、ループを置き換えることができます:私は、Objective-Cの専門家ではありませんが、エラーメッセージを見てから私罠が尋ねる

for (int i=0; i<[object count]; i++) 
{ 
    //add or remove objects if you want 
} 
+0

いいえ、私はforループからオブジェクトを削除していません。私は実際に何をしていますか?1. forループ2に1つのオブジェクトを作成します。そのオブジェクトがNilでなければ、それを1つの辞書に追加し、そのオブジェクトを配列に追加します。 – JiteshW

+0

私のポストを読んでいますか? >そのループを削除するか** **いくつかのオブジェクトを追加する – Nekto

+0

上記のポストに申し訳ありません。私はそれを理解し、私はコードとその作業を変更しました。 – JiteshW

関連する問題