以编程方式设置单元格标识符

15 浏览
0 Comments

以编程方式设置单元格标识符

我正在构建一个带有一些单元格的UITableView。然而,它一直抛出无法使用标识符\"cell\"重用单元格的错误。我正在使用下面的代码,它应该是正确的。我做错了什么吗?\n

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *cellIdentifier = @"cell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier forIndexPath:indexPath];
    if (!cell)
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier: cellIdentifier];
    cell.textLabel.text = [self.ninjas[indexPath.row] name];
    NSString *imageUrl = [NSString stringWithFormat: @"%@", [self.ninjas[indexPath.row] thumbnail]];
    [cell.imageView setImageWithURL:[NSURL URLWithString:imageUrl]
                   placeholderImage:[UIImage imageNamed:@"50-50.jpg"]];
    return cell;
}

\n我没有在这个应用程序中使用Storyboard。

0
0 Comments

问题的原因是在使用dequeueReusableCellWithIdentifier:forIndexPath:方法时,需要先将重用的标识符与表格视图以及单元格类或xib文件进行注册。如果使用Interface Builder创建原型单元格,还需要为这些单元格指定一个重用标识符。解决方法是在创建UITableView后,简单地将UITableViewCell与重用标识符进行注册。

0