这是我的问题:
假设我在每个单元格中有2 UITableViewCell
个Label1和Label2。 Label1将继续在每个索引处接收一个值,因此array [0]和array [1]!= nil。 Label2的情况并非如此; Label2在其数组[0]处接收一个值,但是数组[1] = nil。
这是我尝试过的最新方法,但是,它并没有捕获array2超出范围。
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
static NSString *cellIdentifier = @"Cell";
UITableViewCell *cell = [self.tableView dequeueReusableCellWithIdentifier:cellIdentifier forIndexPath:indexPath];
if (array1.count >= indexPath.row){
UILabel *label1 = (UILabel *)[cell.contentView viewWithTag:1];
NSString *label1String = [array1 objectAtIndex:indexPath.row];
[label1 setText:label1String];
}
if (array2.count >= indexPath.row){
UILabel *label2 = (UILabel *)[cell.contentView viewWithTag:2];
NSString *label2String = [array2 objectAtIndex:indexPath.row];
[label2 setText:label2String];
}
}
答案 0 :(得分:2)
数组索引的范围是0
到count-1
,所以检查必须是
if ( indexPath.row < array2.count )
不允许该行等于计数。