我在iOS开发中仍然有点绿色,并不断收到警告,我不确定。

我在表视图中使用自定义单元格,并将其类设置为UITableViewCell的子类,称为SiteCell。当我将所选单元格声明为SiteCell类型时,在我的“ didSelectRowAtIndexPath”方法中,收到以下警告:


不兼容的指针类型使用来初始化SiteCell __strong
UITableViewCell类型的表达式


-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
    SiteCell *cell = [tableView cellForRowAtIndexPath:indexPath];

    NSString *rowIdentity = [NSString stringWithFormat:@"%d", indexPath.row];
    [selectedRows setObject:[cell.siteTitleLabel text] forKey:rowIdentity];

    if(cell.accessoryType == UITableViewCellAccessoryCheckmark){
        cell.accessoryType = UITableViewCellAccessoryNone;
    }else{
        cell.accessoryType = UITableViewCellAccessoryCheckmark;
    }
}


谁能阐明如何消除此警告?

最佳答案

假设cellForRowAtIndexPath已正确编码,并且已知总是返回SiteCell,则只需将其强制转换为SiteCell*

SiteCell *cell = (SiteCell*)[tableView cellForRowAtIndexPath:indexPath];

10-04 16:56