致命错误:在展开可选值 (lldb) 时意外发现 nil
Posted
技术标签:
【中文标题】致命错误:在展开可选值 (lldb) 时意外发现 nil【英文标题】:Fatal error: unexpectedly found nil while unwrapping an Optional value (lldb) 【发布时间】:2015-01-16 10:03:53 【问题描述】: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 并在左侧菜单中嵌入导航控制器。
不知道有什么问题,请帮忙!
【问题讨论】:
你能确定它到底在哪里崩溃吗?从代码中它必须是 self.slideMenuController()?.closeLeft() - 这意味着可选的 slideMenuController 不存在 我正在使用这个库github.com/dekatotoro/SlideMenuControllerSwift,并将表格单元格添加到我的左侧幻灯片菜单中。当我单击其中一个时,会出现该错误。 【参考方案1】:当您尝试访问声明为“隐式解包可选”(即使用!
声明)但该变量未绑定(绑定到nil
)时,会发生此类错误。
在您的情况下,发生崩溃是因为在 UITableViewController
中,tableView
属性定义为:
var tableView: UITableView!
这是一个隐式展开的可选选项。如果未绑定,则崩溃。
您尚未在 Xcode 的 Interface Builder 中将 tableView
绑定到您的 UITableViewController
。在 Xcode 中,如果您在“连接检查器”中查看您的控制器,您会在“插座”下发现“视图”未绑定。因此,表达式self.tableView
将产生运行时崩溃。
【讨论】:
以上是关于致命错误:在展开可选值 (lldb) 时意外发现 nil的主要内容,如果未能解决你的问题,请参考以下文章
AVCaptureSession 运行时崩溃。致命错误:在展开可选值 (lldb) 时意外发现 nil
命中致命错误:在展开可选值 (lldb) 时意外发现 nil
如何修复:“致命错误:在展开可选值 (lldb) 时意外发现 nil”