의한 캐치되지 않는 예외 'NSInvalidArgumentException'이유로 : NSArrayM objectForKey
애플리케이션의 종료로 인해 캐치되지 않는 예외 'NSInvalidArgumentException'이유로 '- [__ NSArrayM objectForKey는 :] : 미정 선택기 인스턴스 0x12e654c0 전송.
두 개의 사전 개체가있는 Array에서 tableview에 데이터를로드하고 있습니다. viewDidLoad에 코드가 항상 아래 스크린 샷을 참조하십시오 충돌 첫째 행에 대해하지만 두 번째 행 indexPath.row == 1에 충돌 결코 그것은
while (sqlite3_step(statement) == SQLITE_ROW) {
NSString* delID = [NSString stringWithUTF8String:(const char *) sqlite3_column_text(statement, 0)];
NSString* name =[NSString stringWithUTF8String:(const char *) sqlite3_column_text(statement, 1)];
NSMutableDictionary *dict=[NSMutableDictionary dictionary];
[dict setObject:delID forKey:@"delID"];
[dict setObject:name forKey:@"name"];
[self.arr addObject:dict];
아래에 전화했을 때 사전 객체 2는 NSString 객체를 포함합니다. (UIPopoverController *) popoverController이 { 경우 ([datePicker1.CurrentDate 길이]) {
UIButton *btn=(UIButton*)[self.view viewWithTag:btnTag];
[btn setTitle:datePicker1.CurrentDate forState:UIControlStateNormal];
}
if ([self.searchDel.arrSelectDelAdd count ])
{
[self.arr addObject:self.searchDel.arrSelectDelAdd];
[self.tblDelivery reloadData];
}
}
두 번째 행에 사전 데이터가 없기 때문에. 현재 무엇을하고 있습니까? if (i == 0) { [self.arr addObject : dict]; } 는 그래 난 당신이 DICT 위의 스크린 샷 1 개체 delID = 002이 포함되어 볼 수 있습니다 얼마나 많은 객체 배열 –
에서 확인하시기 바랍니다> "내가"값이 "0"인 경우에만 사전을 추가 할 것입니다; name = ""; 크래시 후 디버거에서 값을 인쇄했습니다. –
배열 길이를 확인하십시오. NSLog ("Arrar Count % d", array.count); –