将另外一个单元格添加到tableView

时间:2011-11-27 12:57:59

标签: iphone objective-c ios uitableview

我的问题类似于这个人:

Add a last cell to UItableview

实际上我使用的是在该问题中选择的相同方法,这里是代码片段:

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section  {
    return [array count] + 1;
} 

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

    static NSString *CellIdentifier = @"Cell";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier];
        //   cell.accessoryType = UITableViewCellAccessoryDetailDisclosureButton;
    }

    // Configure the cell.

    NSUInteger rowN = [indexPath row];

    if (rowN == [array count]) {

        cell.textLabel.text = [NSString stringWithFormat:@"Some Text"];

    } else {

    TFHppleElement* pCell = [array objectAtIndex:indexPath.row];
    cell.textLabel.text = [NSString stringWithFormat:@"%@", [pCell content]];

    }

    return cell;    
}

现在,我收到异常错误:*** -[__NSArrayM objectAtIndex:]: index 6 beyond bounds [0 .. 5]

可能是什么问题?从错误中,看起来[array objectAtIndex:indexPath.row]正在尝试访问不存在的数组的第6个索引,但是当我有else条件的代码时,为什么它试图访问第6个索引? / p>

1 个答案:

答案 0 :(得分:2)

更改此行:

NSUInteger rowN = [indexPath row];

为:

NSUInteger rowN = indexPath.row;

或仅使用indexPath.row代替rowN条件中的if