Ios cellForRowAtIndexPath中出错

Ios cellForRowAtIndexPath中出错,ios,objective-c,uitableview,Ios,Objective C,Uitableview,填充表视图时出现了一个奇怪的错误。这是我做过无数次的事情,但现在我被一件可能很简单的事情难倒了。也许我只是醒得太久了 我有一个名为riverGauge的对象,负责从web服务下载数据。然后将相关数据放入NSDictionary对象并作为属性返回。根据字典中的键构建的键数组也作为属性返回 在我的cellForRowAtIndexPath方法中,我使用键数组在字典中查找值并在表视图中呈现它们。相当标准。这是我的cellForRowAtIndexPath: -(UITableViewCell*)tab

填充表视图时出现了一个奇怪的错误。这是我做过无数次的事情,但现在我被一件可能很简单的事情难倒了。也许我只是醒得太久了

我有一个名为riverGauge的对象,负责从web服务下载数据。然后将相关数据放入NSDictionary对象并作为属性返回。根据字典中的键构建的键数组也作为属性返回

在我的cellForRowAtIndexPath方法中,我使用键数组在字典中查找值并在表视图中呈现它们。相当标准。这是我的cellForRowAtIndexPath:

-(UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
    static NSString *cellID = @"DataCell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellID];
    if(cell == nil){
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellID];
    }

    NSDate *key = [riverGauge.gaugeFlowKeys objectAtIndex:indexPath.row];

    NSString *cellText = [riverGauge.gaugeFlows objectForKey:key];
    NSLog(@"CELL TEXT = %@", cellText);

    [cell.textLabel setText:cellText]; // Error on last pass. No errors without this line

    return cell;
}
填充最后一个单元格后,我得到一个无法识别的选择器异常

2014-08-28 12:07:20.318 RiverGuage[9858:60b] -[__NSCFNumber length]: unrecognized selector sent to instance 0xa07b180
2014-08-28 12:07:20.319 RiverGuage[9858:60b] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFNumber length]: unrecognized selector sent to instance 0xa07b180'

我已经验证了返回的键数与字典中的记录数匹配,并且指定了键的值。log语句适用于列表中的每一项,不会返回任何异常的内容。如果对[cell.textLabel setText:cellText]进行了注释,cellForRowAtIndexPath方法将返回而不出错。你知道为什么会这样吗?谢谢

我最好的猜测是您的
[riverGauge.gaugeeflowkeys objectAtIndex:indexath.row]
正在返回一个
NSNumber
。在这种情况下,请执行以下操作来设置数字

NSNumber *cellTextNumber = [riverGauge.gaugeFlows objectForKey:key];
NSString *cellText = [cellTextNumber stringValue];
NSLog(@"CELL TEXT = %@", cellText);
[cell.textLabel setText:cellText];

您上次通过的日志(cellText的
cellText
)是什么?您正在尝试将NSNumber对象设置为cellText它是字典中的最后一项--这正是我所期望的。事实上,我已经运行太久了。谢谢你。张贴你的答案?我想我被难住了,因为在最后一次返回之前,细胞似乎一直在返回。很明显,你试图把一个NSNumber当作一个NSString来处理。