致命错误:意外地发现零,而解包一个可选的值(lldb)

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!) { if segue.identifier == "showLocalMenuDetail" { if let indexPath = self.tableView.indexPathForSelectedRow() { self.slideMenuController()?.closeLeft() let destinationController = segue.destinationViewController as DetailViewController destinationController.localMenuImage = self.locals[indexPath.row].image destinationController.localMenuTitle = self.locals[indexPath.row].title } } } 

我得到了这个“self.tableView.indexPathForSelectedRow()”的错误。我正在导航到其他视图控制器使用滑出式导航面板如facebook使用Segue和左侧菜单上的embedded式导航控制器。

我不知道有什么问题,请帮忙!

当您尝试访问声明为“Implicitly Unwrapped Optional”(即用!声明)但是该variables未绑定(绑定为nil )的variables的值时,就会发生这样的错误。

在你的情况下,发生崩溃是因为在UITableViewControllertableView属性被定义为:

 var tableView: UITableView! 

这是一个隐含的解包可选。 如果没有约束,崩溃。

您还没有将Xcode的Interface Builder中的tableView绑定到您的UITableViewController 。 在Xcode中,如果你在'Connections Inspector'中查看你的控制器,你会在'Outlets'下find'view'没有被绑定。 因此,expression式self.tableView将产生一个运行时崩溃。