2

我收到这段代码的错误。你能帮我找出原因吗。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"CustomerCell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    Restaurant *restaurant = [self.restaurants objectAtIndex:[indexPath row]];
    [[cell textLabel] setText:[NSString stringWithFormat:@"%@ %@",restaurant.Name,restaurant.Address]];
    return cell;
}
4

1 回答 1

3

您的代码的问题在于dequeueReusableCellWithIdentifier:它并不总是返回一个有效的单元格;有时,它会返回nil。在这种情况下,您需要分配一个新的单元实例,然后以通常的方式对其进行初始化。就目前而言,nil如果从该dequeueReusableCellWithIdentifier:方法返回一个,则您的方法将返回。

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (!cell) {
      cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyle1 reuseIdentifier:CellIdentifier];
}
于 2012-07-24T03:04:17.533 回答