2012-07-13 102 views
1

enter image description here终止应用程序由于未捕获的异常 'NSInvalidArgumentException',原因:NSArrayM objectForKey

终止应用程序由于未捕获的异常 'NSInvalidArgumentException',原因:“ - [__ NSArrayM objectForKey:]:无法识别的选择发送到实例0x12e654c0。

我从具有两个字典对象的数组中加载tableview数据。 Dictionary对象包含在viewDidLoad中调用的代码低于

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]; 

它永不死机的第一排,但是,第二排indexPath.row == 1它总是死机,请参见下面的屏幕截图2 NSString的对象。感谢您的帮助

这里是我填self.arr再次 - (空)popoverControllerDidDismissPopover:(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]; 

} 

} 
+0

因为第二行没有字典数据。 (i == 0) {self.arr addObject:dict]; } 它将增加字典只有“I”值为“0”> 请查看如何在阵列 – 2012-07-13 06:43:39

+0

很多物体是啊,我中有你可以看到上面的屏幕截图字典包含1对象 delID = 002; name =“”; 崩溃后,我在调试器中打印值 – 2012-07-13 06:45:51

+0

请检查您的数组长度。 NSLog(“Arrar Count%d”,array.count); – 2012-07-13 06:51:08

回答

0

很抱歉打扰你们其实,问题是,我加入第二或类似

[self.arr addObject:self.searchDel.arrSelectDelAdd]; //Incorrect, that is adding NSArray type not dictionary 

中的cellForRowAtIndexPath然后让值另一个对象

NSDictionary *dict=[arr objectAtIndex:indexPath.row];//here dict will contain NSSArray type not dict type object its causing to crash app. 

cell.lblID.text=(NSString*)[dict objectForKey:@"delID"];// at this line. 
cell.lblName.text=(NSString*)[dict objectForKey:@"name"]; 


[self.arr addObjectsFromArray:self.searchDel.arrSelectDelAdd]; // correct, thats the solution giving contents of NSSArray and now working my code 
1

删除如果条件来自您的代码。因为它只是将第一个字典添加到数组中,而不是第二个字典。

//if (i==0){ 
     [self.arr addObject:dict]; 
//} 

试试这个:)

+0

其实它的服务另一个目的后viewDidLoad我有2个对象在数组中。并且返回numberOfRowsinSection [arr count]即2 – 2012-07-13 06:51:24

相关问题