2013-04-18 2 views
4

다른 장치에서 응용 프로그램을 테스트하고 있습니다. 내 아이팟 터치 4g에서 테스트 할 때 응용 프로그램은 아이폰 5에 잘 작동하지만, 나는이 eror 얻을 : 충돌 것코드는 iPhone 5에서 작동하지만 iPod touch 4에서는 작동하지 않습니다.

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** [__NSArrayMinsertObject:atIndex:]: object cannot be nil' 
*** First throw call stack: 
(0x33f252a3 0x3bba397f 0x33e6f8d9 0x51e25 0x35e180c5 0x35e1814d 0x35e180c5 0x35e18077 0x35e18055 0x35e1790b 0x35e17e01 0x35d405f1 0x35d2d801 0x35d2d11b 0x37a1f5a3 0x37a1f1d3 0x33efa173 0x33efa117 0x33ef8f99 0x33e6bebd 0x33e6bd49 0x37a1e2eb 0x35d81301 0x4fc8d 0x3bfdab20) 
libc++abi.dylib: terminate called throwing an exception 

코드를이 하나입니다

/********/ 
    NSMutableArray *titulosCampoTextArray = [[NSMutableArray alloc] init]; 
    for (int i = 0; i < campos.count; i++) { 

     SignupCell *cell = (SignupCell*)[self.tableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:i inSection:0]]; 
     [titulosCampoTextArray addObject:cell.textField.text]; 
    } 
/********/ 

나 ' 사용자 정의 프로토 타입 셀 (SignupCell.h) UIView 내부 UITableView 사용하여.

오류 또는 해결 방법을 찾을 수 없습니다.

EDIT : 두 장치 모두 iOS 6.1.3을 실행 중이며 Xcode 4.6.1을 사용하고 있습니다. 당신은 분명히 아이팟에 아이폰 5에 nil를 추가 만 할 수없는 이유

NSMutableArray *titulosCampoTextArray = [[NSMutableArray alloc] init]; 
for (int i = 0; i < campos.count; i++) { 

    SignupCell *cell = (SignupCell*)[self.tableView 
     cellForRowAtIndexPath:[NSIndexPath indexPathForRow:i inSection:0]]; 
    if (cell.textField.text) { 
     [titulosCampoTextArray addObject:cell.textField.text]; 
    } 
} 

나도 몰라 :

+0

2 개 기기의 iOS 버전은 무엇인가요? – Raptor

+0

@ShivanRaptor iOS 6.1.3 (두 장치 모두). –

답변

5

UITableView-cellForRowAtIndexPath: 방법은 nil를 반환 아이폰에서 실행되는 경우에는 다른 이유로 그냥 cell.textField.text에 대한 nil 값이 일이 결코 될 수있다 전화 해.

내 생각 엔 iPhone 5에서는 테이블을 한 번에 모든 행을 표시 할 수 있지만 짧은 iPod 터치에서는 마지막 한두 개의 셀을 볼 수 없으므로 -cellForRowAtIndexPath:nil을 반환하므로 앱이 다운됩니다.

모델 데이터를 요청 하시려면 -cellForRowAtIndexPath에 의지하지 마십시오! 뷰 컨트롤러는 테이블 뷰가 아닌 데이터를 담당합니다.

뷰 컨트롤러의 -tableView:cellForRowAtIndexPath: 데이터 소스 메서드에서 테이블 뷰 셀의 텍스트를 설정하는 것과 같은 방법으로 모델 데이터에 액세스합니다.

+1

+1 셜록 홈즈 – MusiGenesis

+0

@MusiGenesis와 동의하십시오. 실제로 일어난 일이었습니다. 고마워. –

1

그냥이 할. 셀이 화면의 경우에서 볼 수없는 경우 앱이 5

+0

실제로 테스트하는 동안 두 장치에서 동일한 순서로 테이블을 채웠지만 여전히이 오류가 발생했습니다. –

+2

'-cellForRowAtIndexPath :'가 nil을 반환하는 이유에 대한 내 대답을 참조하십시오. –

관련 문제