0

我有一个 NSDictionaries 的 NSArray,在这个数组中有几个值我不想在 UITableView 中显示,我想知道如何避免在tableView:cellForRowAtIndexPath 中返回这些单元格:

我试过了,return nil;但这导致了我的错误。

这就是我的代码的样子

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"Cell";
    CustomInstallCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

    if (cell == nil) {
        cell = [[CustomInstallCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
    }

    // Configure the cell...
    cell.selectionStyle = UITableViewCellSelectionStyleGray;
    currentInstallDictionary = [sortedItemsArray objectAtIndex:indexPath.row];

        NSNumber *tempDP = [currentInstallDictionary objectForKey:@"dp"];
        NSInteger myInteger = [tempDP integerValue];

        if (myInteger == 0) {

return cell;
}
return nil; // gives error
}

任何帮助,将不胜感激。

4

2 回答 2

2

此方法必须返回一个单元格。它不能返回零。最好的办法是在加载表格之前过滤列表,并在出列单元格时使用过滤后的数组。

于 2013-11-02T00:46:51.317 回答
0

UITableView 只要求一个单元格,因为您告诉它要求。您的UITableViewDataSource协议实现实现了两种方法:

在这些方法中,您可以确定屏幕上应该出现多少个单元格。正如 Brian Shamblen 回答的那样,如果您不希望该数据出现在表格视图中,那么在计算节数和行数时如何忽略(过滤、删除等)该数据。如果您这样做,则不会请求“额外”单元格。

于 2013-11-02T02:35:35.157 回答