2012-08-02 2 views
0

예제를 따라 테이블 뷰를 만들려고합니다. 코드가 책에있다.하지만 항상 충돌한다. 디버거가 나에게 정보를 보여 나는 그것이 무엇을 의미하는지 전혀 모르는캐치되지 않은 예외 'NSRangeException'으로 인해 tableview 크래시를 수정하는 방법, 이유 : '*** - [__ NSArrayM objectAtIndex :] : 경계 1 [0 .. 0]을 넘는 인덱스 1'

2012-08-03 02:51:09.854 TableView[652:c07] *** Terminating app due to uncaught exception 'NSRangeException', reason: '*** -[__NSArrayM objectAtIndex:]: index 1 beyond bounds [0 .. 0]' 
*** First throw call stack: 
(0x1794022 0x1194cd6 0x1780d88 0xfdd1b7 0x3b24 0x2e62 0xb2c54 0xb33ce 0x9ecbd 0xad6f1 0x56d21 0x1795e42 0x2065679 0x206f579 0x1ff44f7 0x1ff63f6 0x2083160 0x16e84 0x17767 0x26183 0x26c38 0x1a634 0x167eef5 0x1768195 0x16ccff2 0x16cb8da 0x16cad84 0x16cac9b 0x16c65 0x18626 0x1eb2 0x1e25) 
terminate called throwing an exception(lldb) 

합니다. 긴 코드를 다시 드려 죄송합니다 .... 필요한 경우 전체 코드를 보낼 수 있습니다.

누군가 온라인으로 문제가 발생했다고 plist, http : //p2p.wrox.com/271591-post2.html 으로 인해 발생하지만 Xcode 4.4에서 plist를 수정할 수 없습니다 .Xcode는 녹색 포인터 이 코드

- (void)configureCell:(UITableViewCell *)cell atIndexPath:(NSIndexPath *)indexPath 
{ 
    NSManagedObject *object = [self.fetchedResultsController objectAtIndexPath:indexPath]; 
    cell.textLabel.text = [[object valueForKey:@"timeStamp"] description]; 
} 
+0

게시 한 코드의 양을 줄일 수 있습니까? 충돌이 발생한 줄과 관련된 코드를 –

+0

@DanF에 게시하십시오. 죄송합니다. 객관적으로 새로운 것입니다.-c. 아마도 원하는 것일 수도 있습니다. – kururu623

답변

0

즉, 요소가 0 인 배열의 첫 번째 요소에 액세스하려고합니다. 제 생각에 오류는 objectAtIndex으로 전화를 걸고있는 라인 중 하나에 있습니다.

배열 인덱싱은 0에서 시작합니다.

2

테이블보기 데이터 원본 방법 (numberOfSectionsInTableView:, tableView:numberOfRowsInSection:tableView:cellForRowAtIndexPath:)은 self.years을 데이터 원본으로 사용합니다.

반면에 새로운 "이벤트"엔티티가 코어 데이터 저장소에 추가되거나 코어 데이터 저장소에서 제거되면 insertRowsAtIndexPaths:...deleteRowsAtIndexPaths:...을 호출하는 가져온 결과 컨트롤러가 있습니다.

그래서 여기에 맞지 않는 두 가지를 혼합합니다. 테이블 뷰 행을 추가하기 때문에 충돌이 발생하지만 데이터 소스는 이에 따라 변경되지 않습니다.

+0

그럼 어떻게 수정하면 되나요? 데이터 소스를 변경하는 방법? –

+0

@GajendraKChauhan :이 답변을 작성하는 동안 질문이 수정되었습니다. 그러므로 나는 당신에게 어떤 문제가 있는지 정확히 알지 못합니다. –

관련 문제