2012-07-13 148 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

相關問題