我使用自定义表格视图来显示来自Data Core的数据,它应该看起来像这样
但我实际得到的是这个
这是我的代码:
- (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;
}
答案 0 :(得分:1)
您的其他数据源方法正在运行,因为您可以看到存在单元格,但没有填充任何内容。
这一行:
Item *item = [self.items objectAtIndex:indexPath.row];
使用获取的结果控制器时不常见。它应该是
Item *item = [self.fetchedResultsController objectAtIndexPath:indexPath];
如果您检入调试器,您将看到当前代码的项目可能为零。
如果不是这样,那么您的标签在原型单元格和代码之间不匹配。同样,这可以在调试器中检查 - 标签将为零。
答案 1 :(得分:1)
如果右键单击故事板中的标签,您可以看到他们连接的插座。检查他们是否有一个白点来表示连接,然后正如@jhurton建议的那样,检查您的数据项是否为nil
。