带静态单元格的TableView“... dataSource必须从cellForRowAtIndexPath返回一个单元格”错误

时间:2013-12-14 10:41:45

标签: ios objective-c uitableview

在我的应用程序中,我有ViewController,它将TableView与静态单元格放在一起。 StoryBoard看起来像这样:

enter image description here

在.m文件中我写道:

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

[self.myTableView cellForRowAtIndexPath:indexPath];
    }

但我收到一个错误:dataSource must return a cell from cellForRowAtIndexPath 我做错了什么?

1 个答案:

答案 0 :(得分:1)

你做错了 - 你必须创建并返回一个单元格。

最常见的实现是:

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

     static NSString *CellIdentifier = @"Cell";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
    }

    return cell;
}

从我看到你想要为不同的行返回不同的单元格 - 你必须在该函数中创建if / else块,这将使每种类型的唯一标识符出列正确的单元格类型。

如果您至少阅读其中一个教程,那将是件好事。这是应该帮助你的那个:http://www.appcoda.com/customize-table-view-cells-for-uitableview/