2011-10-24 5 views
0

서버에서 데이터를 가져 오는 동안 아래 오류가 발생했습니다. 데이터를 가져 오는 동안 활동 표시기가있는 사용자 정의 경고보기를 표시합니다. Alert는 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-loop (for (id _obj in object))를 사용하여 NSMutableArray 또는 NSMutableSet을 일부 object을 열거 'NSException'

+0

을 : 코드에 당신은'foreach item in collection'과 같은 것을하고 동시에 루프 몸체의 콜렉션을 수정합니까? – Ankur

+0

코드를 표시하십시오. – macbirdie

답변

2

문제는 코드의 일부에의 인스턴스를 던지는 후 그 루프에서 호출 종료 같은 object에 개체. 가능하지 않으며 exception이 발생합니다.

당신이 루프 인덱스 변수를 사용하여 그것을위한 루프를 대체 할 수있다 : 나는 목표-C 전문가가 아니라 오류 메시지가보고에서 나는 와나 물어

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

아니요, for 루프에서 개체를 제거하지 않았습니다. 내가 실제로하는 것은 1. for 루프 2에 하나의 객체를 만듭니다. Nil이 아닌 경우 하나의 사전에 추가 한 다음 해당 객체를 배열에 추가합니다. – JiteshW

+0

내 게시물을 읽습니까? > 해당 루프 제거 또는 ** 일부 개체 추가 ** – Nekto

+0

위의 게시물에 대 한 죄송합니다. 알아 냈어, 내 코드와 코드가 바뀌었다. – JiteshW