(Swift)tableView应用程序iOS由于&#34而失败;条件绑定中的绑定值必须是可选类型"

时间:2015-01-07 09:47:04

标签: ios uitableview swift

我正在尝试为iOS创建一个基于数据库的应用程序,我或多或少地被迫使用Xcode 6.2 Beta 3,因为我用6.2启动了项目并在我的测试设备上运行iOS 8.2。顺便说一下,我发现beta会强制我使用标准键盘,而不是小数点,否则应用就会停止工作。

我无法弄清楚出了什么问题。当我试图评论该功能时,该文件中的某些内容仍然存在问题。 VC-swift文件,tableVC-swift文件和datamodel文件之间是否有任何缺失的连接? 我改变了实体列表的名称一次,然后又改回来了,因为我之前遇到过另一个错误。但是在我这样做后,似乎调试区域没有捕获我尝试保存到数据库的数据...

错误显示“条件绑定中的绑定值必须是可选类型”

以下是初始行标记为红色的代码:

  if let ip = indexPath {
        var data: NSManagedObject = tankningslista[ip.row] as NSManagedObject
    cell.textLabel?.text = data.valueForKey("datum") as String

    }

整个功能如下:

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {

    // Configure the cell...
    let CellID: NSString = "Cell"

    var cell: UITableViewCell = tableView.dequeueReusableCellWithIdentifier(CellID) as UITableViewCell

if let ip = indexPath {
        var data: NSManagedObject = tankningslista[ip.row] as NSManagedObject
    cell.textLabel?.text = data.valueForKey("datum") as String

    }


    return cell
}

我已按照本教程:https://www.youtube.com/watch?v=4ymz6i07DRM

1 个答案:

答案 0 :(得分:0)

尝试这种方式而不使用条件:

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {

// Configure the cell...
let CellID: NSString = "Cell"

var cell: UITableViewCell = tableView.dequeueReusableCellWithIdentifier(CellID) as UITableViewCell
var data: NSManagedObject = tankningslista[indexPath.row] as NSManagedObject
cell.textLabel.text = data.valueForKey("datum") as? String

return cell
}