-2

我一直在关注一个教程

它使用调用来更改我不想使用并且没有添加的表格视图,但是当涉及到这一点时

    - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"CellIdentifier";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    //if (cell == nil) cell = [[PeerCell alloc] initWithStyle:UITableViewCellStyleDefault  reuseIdentifier:CellIdentifier];

    NSString *peerID = [_matchmakingServer peerIDForConnectedClientAtIndex:indexPath.row];
    cell.textLabel.text = [_matchmakingServer displayNameForPeerID:peerID];

    return cell;
}

我取消了 if 语句,因为它将在其中设置数据格式,现在当您返回单元格时,它会引发异常

任何人有任何想法为什么?

错误信息...

-[UITableView _configureCellForDisplay:forIndexPath:], /SourceCache/UIKit/UIKit-2380.17/UITableView.m:5471 2013-05-29 21:11:28.967 Iphone_controller[2485:907] 中的断言失败*由于未捕获的异常而终止应用程序' NSInternalInconsistencyException',原因:'UITableView 数据源必须从 tableView 返回一个单元格:cellForRowAtIndexPath:'

4

1 回答 1

1

我猜它会引发异常,因为您要返回nil. 因为您注释掉了将创建单元格的行...不知道您为什么这样做。

从技术上讲,您的代码可以工作,但前提是您CellIdentifier在尝试使用表格视图之前为您的表格视图注册了一个 NIB。

如果您没有注册 NIB,则在无法出列时创建单元格是常见且正确的做法。

尝试:

    if (cell == nil) cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault  reuseIdentifier:CellIdentifier];
于 2013-05-29T20:11:18.623 回答