条件绑定中的绑定值必须是可选类型[IOS - SWIFT]

时间:2015-07-11 05:40:26

标签: ios swift

我正在尝试使用Swift在Xcode中创建一个TO-DO列表应用程序,并且在“if let path = indexPath {”行中写入“条件中的绑定值”时遇到错误写入其中一个函数方法绑定必须是可选类型“。

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath) as! UITableViewCell
    if let path = indexPath {            
        let currentString  = dataSource[path.section][path.row]
        cell.textLabel?.text = currentString            
    }        
    return cell
}

3 个答案:

答案 0 :(得分:2)

由于indexpath 不是可选的,因此您无需使用条件绑定

 func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath) as! UITableViewCell
    let currentString  = dataSource[indexPath.section][indexPath.row]
    cell.textLabel?.text = currentString
    return cell
}

答案 1 :(得分:2)

为什么你想要使用两个constant? 修复代码:

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
   let cell = tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath) as! UITableViewCell

       cell.textLabel?.text = dataSource[indexPath.section][indexPath.row]            
   }        
   return cell
}

答案 2 :(得分:0)

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath) as! UITableViewCell
        cell.textLabel?.text = dataSource[indexPath.section][indexPath.row]
        return cell
}

使用此代码,因为我认为我之前的想法并不好。

您不需要Leo建议的条件绑定。