0

我正在尝试遵循本教程,但我得到了空表。

http://www.techotopia.com/index.php/Using_Xcode_5_Storyboards_to_Build_Dynamic_TableViews_with_Prototype_Table_View_Cells

首先,教程是使用

{
CarTableViewCell *cell = [tableView 
      dequeueReusableCellWithIdentifier:CellIdentifier 
      forIndexPath:indexPath];
}

有了这个我遇到了一个错误:

2013-11-12 11:29:35.940 TableViewStory[14940:70b] *** Terminating app due to uncaught 
exception 'NSInternalInconsistencyException', reason: 'unable to dequeue a cell with 
identifier carTableCell - must register a nib or a class for the identifier or connect a 
prototype cell in a storyboard'

所以我补充说:

[self.tableView registerClass:[CarTableViewCell class] 
    forCellReuseIdentifier:@"carTableCell"];

在我的 viewDidLoad 上。添加 registerClass 后,我能够构建我的应用程序。但是我得到了空桌子。

谢谢你。

4

2 回答 2

0

您需要适当地实现 cellForRowAtIndexPath 方法:

- (UITableViewCell *)tableView:(UITableView *)iTableView cellForRowAtIndexPath:(NSIndexPath *)iIndexPath
{
    static NSString *cellIdentifier = @"Cell";

    UITableViewCell *cell = [iTableView dequeueReusableCellWithIdentifier:cellIdentifier];
    if (cell == nil) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:cellIdentifier];
    }

// Customize your cell

return cell;
}

您没有为重用标识符 CellIdentifier 注册 nib 或类。您正在使用下面的部分

CarTableViewCell *cell = [tableView 
      dequeueReusableCellWithIdentifier:CellIdentifier 
      forIndexPath:indexPath];

将此替换为

CarTableViewCell *cell = [tableView 
          dequeueReusableCellWithIdentifier:CellIdentifier];
于 2013-11-12T03:40:57.727 回答
0

我重新做了教程,一切正常。

不管怎么说,还是要谢谢你。

于 2013-11-12T11:27:01.117 回答