(Swift) tableView 应用程序 iOS 由于 "Bound value in a conditional binding must be of Optional type" 而失败
(Swift) tableView application iOS fails because of "Bound value in a conditional binding must be of Optional type"
我正在尝试为 iOS 创建一个基于数据库的应用程序,我或多或少被迫使用 Xcode 6.2 Beta 3,因为我使用 6.2 启动项目并运行iOS 8.2 在我的测试设备上。顺便说一下,我发现测试版强制我使用标准键盘,而不是小数点,否则应用程序将停止工作。
我不知道哪里出了问题。当我尝试将该函数注释掉时,此文件中仍然存在错误。 VC-swift-file、tableVC-swift-file 和 datamodel-file 之间是否缺少连接?
我改了一次实体列表的名字,然后改回来,因为我之前有另一个错误。但是在我这样做之后,调试区域似乎也没有捕获我尝试保存到数据库的数据...
错误显示 "Bound value in a conditional binding must be of Optional type"
这是在初始行上标记为红色的代码:
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
在不使用条件的情况下尝试这种方式:
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
}
我正在尝试为 iOS 创建一个基于数据库的应用程序,我或多或少被迫使用 Xcode 6.2 Beta 3,因为我使用 6.2 启动项目并运行iOS 8.2 在我的测试设备上。顺便说一下,我发现测试版强制我使用标准键盘,而不是小数点,否则应用程序将停止工作。
我不知道哪里出了问题。当我尝试将该函数注释掉时,此文件中仍然存在错误。 VC-swift-file、tableVC-swift-file 和 datamodel-file 之间是否缺少连接? 我改了一次实体列表的名字,然后改回来,因为我之前有另一个错误。但是在我这样做之后,调试区域似乎也没有捕获我尝试保存到数据库的数据...
错误显示 "Bound value in a conditional binding must be of Optional type"
这是在初始行上标记为红色的代码:
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
在不使用条件的情况下尝试这种方式:
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
}