我试图在点击按钮时获取对按钮所包含的单元格的引用,但是它不应该抛出错误。
fatal error: unexpectedly found nil while unwrapping an Optional value
(lldb)
我正在检查它的可选值是否为nil并且它不是,然后它会抛出运行时错误..
func buttonReleased(button: UIButton){
let pointInTable: CGPoint = button.convertPoint(button.bounds.origin, toView: self.tableView)
var path = myTableView.indexPathForRowAtPoint(pointInTable)
if let cell = self.myTableView.cellForRowAtIndexPath(path!) as? MainListTableViewCell {
println("test")
} else {
println("it didn't work, let's think about why")
}
}
我该如何解决这个问题?
答案 0 :(得分:2)
var cell = self.myTableView.cellForRowAtIndexPath(path!)
as MainListTableViewCell
想想你知道什么,不知道什么。你知道path
不是零。但那就是你所知道的。您的代码做出了许多其他假设。 cellForRowAtIndexPath
返回一个Optional。您假设该特定cellForRowAtIndexPath
的{{1}}不是nil。并且您进一步假设它返回的单元格是MainListTableViewCell。而不是假设,编写代码的方式是在解开Optional之前检查每个事情。
所以,你可以用这种方式编写代码:
path