我的问题类似于这个人:
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>
答案 0 :(得分:2)
更改此行:
NSUInteger rowN = [indexPath row];
为:
NSUInteger rowN = indexPath.row;
或仅使用indexPath.row
代替rowN
条件中的if