2011-07-30 2 views
0
*** Terminating app due to uncaught exception 'NSRangeException', reason: '*** -[NSMutableArray objectAtIndex:]: index 18 beyond bounds [0 .. 16]' 
*** Call stack at first throw: 
(
    0 CoreFoundation      0x02b11b99 __exceptionPreprocess + 185 
    1 libobjc.A.dylib      0x02c6140e objc_exception_throw + 47 
    2 CoreFoundation      0x02b07695 -[__NSArrayM objectAtIndex:] + 261 
    3 MyPocket       0x0005efe9 -[loginLocalitems tableView:didSelectRowAtIndexPath:] + 638 
    4 UIKit        0x00be9a48 -[UITableView _selectRowAtIndexPath:animated:scrollPosition:notifyDelegate:] + 1140 
    5 UIKit        0x00be032e -[UITableView _userSelectRowAtIndexPath:] + 219 
    6 Foundation       0x0037821a __NSFireDelayedPerform + 441 
    7 CoreFoundation      0x02af2f73 __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__ + 19 
    8 CoreFoundation      0x02af45b4 __CFRunLoopDoTimer + 1364 
    9 CoreFoundation      0x02a50dd9 __CFRunLoopRun + 1817 
    10 CoreFoundation      0x02a50350 CFRunLoopRunSpecific + 208 
    11 CoreFoundation      0x02a50271 CFRunLoopRunInMode + 97 
    12 GraphicsServices     0x03f4e00c GSEventRunModal + 217 
    13 GraphicsServices     0x03f4e0d1 GSEventRun + 115 
    14 UIKit        0x00b84af2 UIApplicationMain + 1160 
    15 MyPocket       0x000023d2 main + 84 
    16 MyPocket       0x00002375 start + 53 
    17 ???         0x00000001 0x0 + 1 
) 
terminate called after throwing an instance of 'NSException' 

위의 배열의 이유는 무엇입니까? 이 충돌은 테이블보기의 하위 셀을 선택했을 때만 나타납니다. 누구나 pls 도움테이블 뷰 셀에서의 크래시

+2

'didSelectRowAtIndexPath :'의 코드를 게시하십시오. – WrightsCS

답변

3

이 오류는 NSMutableArray가 내부에 0-16 개의 개체 만 가지고 있음을 알려줍니다. 테이블의 맨 아래로 스크롤하여 인덱스 16보다 높은 배열의 객체에 액세스하려는 하위 셀을 선택하면 테이블에 사용중인 배열이 제대로 채워 졌는지 확인하십시오. 당신은 나중에 그것을 제거하지 않습니다.

3

가변 배열에서 데이터를로드하고 있습니까? 배열에 실제로 18 개의 요소가 있는지 확인하십시오. 당신이이 범위의 예외

numberOfRows inSection 방법의 실제 행 수보다 큰 번호를 제공하는 경우 가 나 :

index 18 beyond bounds [0 .. 16] 

당신이 보는대로 당신이 낮은 항목

을 클릭하면, 그것은 단지 발생