尝试在 UITableView 中获取行大小时出现异常



我有这个代码块,我用它来将文本放在UITableView单元格中。它给了我一个错误。

-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    UIFont *cellFont = [UIFont fontWithName:@"Helvetica" size:17];
    CGSize constraintSize = CGSizeMake(self.itemList.frame.size.width, MAXFLOAT);
    CGSize labelSize = [[items_array objectAtIndex:indexPath.row] sizeWithFont:cellFont constrainedToSize:constraintSize lineBreakMode:UILineBreakModeWordWrap];
    return labelSize.height + 30;
}

错误发生在以下行:

CGSize labelSize = [[items_array objectAtIndex:indexPath.row] sizeWithFont:cellFont constrainedToSize:constraintSize lineBreakMode:UILineBreakModeWordWrap];

这是错误:

uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFDictionary sizeWithFont:constrainedToSize:lineBreakMode:]: unrecognized selector sent to instance 0x834b020'

再一次,异常告诉你出了什么问题。 [items_array objectAtIndex:indexPath.row]NSDictionary而不是NSString.修复此问题,异常将消失。

最新更新