【发布时间】:2012-07-12 23:57:03
【问题描述】:
由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:'-[__NSArrayM objectForKey:]:无法识别的选择器发送到实例 0x12e654c0。
我正在从具有两个字典对象的 Array 中加载 tableview 上的数据。调用 ViewDidLoad 时的 Dictionary 对象包含 2 个 nsstring 对象,代码如下
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 它总是崩溃,请参阅下面的屏幕截图。感谢帮助
这是我再次填写 self.arr -(void)popoverControllerDidDismissPopover:(UIPopoverController *)popoverController { if ([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];只有当“i”值为“0”时才会添加字典">请检查数组中有多少对象
-
是的,你能看到上面的屏幕截图 dict 包含 1 个对象 delID=002;名称="";崩溃后我确实在调试器中打印了值
-
请检查您的数组长度。 NSLog("Arrar Count %d", array.count);
-
你能把整个函数放上去吗??
-
你的
dict不是一个NSDictionary,它是一个NSArray,它包含一个字典在index:0
标签: objective-c ios