0

我已经搜索了几个小时,发现了很多提示,但没有找到解决方案。我有一个非常简单的带有静态单元格的表格视图。我正在关注 Apple 文档。我没有使用故事板,我没有选中自动布局,将文档版本设置为 iOS5。它在 iOS6 中运行良好,但在 iOS5 中单元格为 NIL,因此它会崩溃。

单元格是在 IB 中完成的,我已经连接了属性,我有单元格标识符(实际上不需要但没有区别)。日志语句在 iOS5 中返回 (null),但在 iOS6 中正确返回一个单元格。

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

    if (indexPath.section == 0 ) {

        if (indexPath.row ==0) {

        cell0.selectionStyle = UITableViewCellSelectionStyleNone;
        NSLog(@"description = %@",[cell0 description]);
        return cell0;
        }
        if (indexPath.row ==1) {

        cell1.selectionStyle = UITableViewCellSelectionStyleNone;
        return cell1;
        }
        if (indexPath.row ==2) {

            cell2.selectionStyle = UITableViewCellSelectionStyleNone;
            return cell2;
        }
        if (indexPath.row ==3) {

            cell3.selectionStyle = UITableViewCellSelectionStyleNone;
            return cell3;
        }
    }
    cell4.selectionStyle = UITableViewCellSelectionStyleNone;
    return cell4;
}

提前感谢您为我指明正确的方向。我知道它一定很简单,但它让我发疯。

4

2 回答 2

1

用以下代码片段替换您的代码,它将在 ios5 中工作。

if (indexPath.section == 0) {

    if (indexPath.row ==0) {

    UITableViewCell *cell0 = [tableview dequeueReusableCellWithIdentifier:@"cell0"];

    cell0.selectionStyle = UITableViewCellSelectionStyleNone;
    NSLog(@"description = %@",[cell0 description]);
    return cell0;

    if (indexPath.row ==1) {

    UITableViewCell *cell1 = [tableview dequeueReusableCellWithIdentifier:@"cell1"];

    cell1.selectionStyle = UITableViewCellSelectionStyleNone;
    return cell1;
    }

    if (indexPath.row ==2) {

    UITableViewCell *cell2 = [tableview dequeueReusableCellWithIdentifier:@"cell2"];
        cell2.selectionStyle = UITableViewCellSelectionStyleNone;
        return cell2;
    }

   if (indexPath.row ==3) {

      UITableViewCell *cell3 = [tableview dequeueReusableCellWithIdentifier:@"cell3"];
        cell3.selectionStyle = UITableViewCellSelectionStyleNone;
        return cell3;
    }

   UITableViewCell *cell4 = [tableview dequeueReusableCellWithIdentifier:@"cell4"];
   cell4.selectionStyle = UITableViewCellSelectionStyleNone;
   return cell4;

}

于 2013-05-12T15:52:10.330 回答
0

当您使用 dequeueReusableCellWithIdentifier 时:如果没有创建单元格,它可以返回 nil。此时您需要分配并初始化您自己的单元格。

于 2013-05-13T17:10:43.697 回答