为什么tableview不显示任何数据?

时间:2012-05-10 07:57:16

标签: iphone ios uitableview

我使用自定义表格视图来显示来自Data Core的数据,它应该看起来像这样

enter image description here

但我实际得到的是这个

enter image description here

这是我的代码:

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
    return [[self.fetchedResultsController sections] count];
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    id <NSFetchedResultsSectionInfo> sectionInfo = [[self.fetchedResultsController sections] objectAtIndex:section];
    return [sectionInfo numberOfObjects];
}


- (void)configureCell:(UITableViewCell *)cell atIndexPath:(NSIndexPath *)indexPath
{
    Item *item = [self.items objectAtIndex:indexPath.row];
    UILabel *nameLabel = (UILabel *)[cell viewWithTag:100];
    nameLabel.text = item.name;
    UILabel *catLabel = (UILabel *)[cell viewWithTag:101];
    catLabel.text = item.category;
    UILabel *amountLabel = (UILabel *)[cell viewWithTag:102];
    amountLabel.text = item.amount;

}

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

    static NSString *CellIdentifier = @"AccountCell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

    [self configureCell:cell atIndexPath:indexPath];

    return cell;

}

2 个答案:

答案 0 :(得分:1)

您的其他数据源方法正在运行,因为您可以看到存在单元格,但没有填充任何内容。

这一行:

Item *item = [self.items objectAtIndex:indexPath.row];

使用获取的结果控制器时不常见。它应该是

Item *item = [self.fetchedResultsController objectAtIndexPath:indexPath];

如果您检入调试器,您将看到当前代码的项目可能为零。

如果不是这样,那么您的标签在原型单元格和代码之间不匹配。同样,这可以在调试器中检查 - 标签将为零。

答案 1 :(得分:1)

如果右键单击故事板中的标签,您可以看到他们连接的插座。检查他们是否有一个白点来表示连接,然后正如@jhurton建议的那样,检查您的数据项是否为nil