我有一个需要包含两个不同视图的tableview,第一个视图的名称是customtableviewcell,第二个视图是customdeliverytableviewcell
我要我的变量取两个单元格,我不明白这个错误。
swift - 快速发送不同的 Nib 3-LMLPHP
这是我的职责

    override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell
{

    var cell: UITableViewCell
    cell = Bundle.main.loadNibNamed("CustomTableViewCell", owner: self, options: nil)?.first as! UITableViewCell

    if (!self.appReady)
    {
        return cell
    }
    let arrayOfCard = self.selectedCard(section: indexPath.section, row: indexPath.row)
    let json:JSON = JSON(arrayOfCard)
    if (json[0]["cards"][indexPath.row]["category"] == "delivery")
    {
        cell = Bundle.main.loadNibNamed("CustomDeliveryTableViewCell", owner: self, options: nil)?.first as! CustomTableViewCell
    }
    cell = fillCell(cell: cell, json: json, index: indexPath.row)
    return cell
}

我的Fonction Fillcell就是这样的原型
func fillcell(单元格:customtableviewcell,json:json,索引:int)->
自定义表视图单元格
编辑
这里是实际fillcell函数的代码
    func fillCell(cell: UITableViewCell, json:JSON, index:Int) -> UITableViewCell {
    if (json[0]["cards"][index]["category"] == "train")
    {
        if let type = json[0]["cards"][index]["category"] as JSON?
        {
            cell.labelType.text = type.string
        }
        if let departureStation = json[0]["cards"][index]["train"]["departure"]["station"] as JSON?
        {
            cell.labelDepartureStation.text = departureStation.string
        }
    // Do some code
    }
    else if (json[0]["cards"][index]["category"] == "delivery")
    {
        //Do some code
        return cell
    }
    else{
        //Do some code
        return cell
    }
}

最佳答案

你的初始任务创建一个cell类型的CustomDeliveryTableViewCell
if块中,您试图将CustomTableViewCell赋给同一个变量。只有当CustomTableViewCellCustomDeliveryTableViewCell的子类时,这才有效。
当您调用fillCell(时,它应该是CustomTableViewCell,但cell是一个CustomDeliveryTableViewCell
如果声明var cell: UITableViewCell,则可以为其指定任一类型。

关于swift - 快速发送不同的 Nib 3,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42724806/

10-14 02:34