// Configure the cell.
cell.textLabel.text = [[self.drinks objectAtIndex:indexPath.row] objectForKey:@"Name"];
return cell;
上面的代码正在生成此异常。可能导致这种情况的原因以及如何解决?
答案 0 :(得分:2)
我对你的问题的理解
你有很多饮料,比如
Drink *d1 = [[Drink alloc] init]
d1.name = @"Drink1";
d1.price = [NSNumber numberWithFloat:25.0];
Drink *d2 = [[Drink alloc] init]
d2.name = @"Drink2";
d2.price = [NSNumber numberWithFloat:35.0];
OR
NSArray *values1 = [NSArray arrayWithObjects:@"Drink1",[NSNumber numberWithFloat:25.0], nil];
NSArray *keys1 = [NSArray arrayWithObjects:@"Name",@"price", nil];
NSDictionary *d1 = [[NSDictionary alloc] initWithObjects:values1 forKeys:keys1];
NSArray *values2 = [NSArray arrayWithObjects:@"Drink2",[NSNumber numberWithFloat:55.0], nil];
NSArray *keys2 = [NSArray arrayWithObjects:@"Name",@"price", nil];
NSDictionary *d2 = [[NSDictionary alloc] initWithObjects:values1 forKeys:keys1];
self.drinks = [NSArray arrayWithObjects:d1,d2, nil];
[d1 release];
[d2 release];
从上述案例中
cell.textLabel.text = [[self.drinks objectAtIndex:indexPath.row] objectForKey:@"Name"];
以上陈述是正确的
您正在获取异常意味着,您正在将对象插入到drink数组中,该数组支持键值对数据,即字符串数据。
我希望你喜欢这个
self.drinks = [NSArray arrayWithObjects:@"Drink1",@"Drink2", nil];
在上述情况中,您必须使用
cell.textLabel.text = [self.drinks objectAtIndex:indexPath.row];
答案 1 :(得分:0)
首先尝试确定self.drinks是什么对象,
那么你可以更精细,具体取决于是否是一个带字典的数组?
做一个日志
你看到了什么?[self.drinks objectAtIndex:0]