致命错误:在展开可选值 (lldb) 时意外发现 nil

Posted

技术标签:

【中文标题】致命错误:在展开可选值 (lldb) 时意外发现 nil【英文标题】:Fatal error: Unexpectedly found nil while unwrapping an Optional value (lldb) 【发布时间】:2016-03-05 19:57:17 【问题描述】:

我遇到了致命错误:Unexpectedly found nil while unwrapping an Optional value (lldb) 的常见错误。我已经研究过关于 SO 的其他问题,但这些都没有回答我的问题。

错误出现在以下代码的第4行:

if content[indexPath.row].urgent == true 
        cell.urgentLabel.text = "URGENT"
 else 
        cell.urgentLabel.text = ""

关于 SO 的其他问题说我应该在第 4 行有 "",但是我该如何解决这个问题,它仍然不显示任何文本。

这段代码对应如下数组:

var content:[Agenda] = [
    Agenda(subject: "Read this article", deadline: "1-2 days", urgent: false),
    Agenda(subject: "Respond to this email", deadline: "ASAP", urgent: true),
    Agenda(subject: "Add this to diary", deadline: "When at home", urgent: true),
    Agenda(subject: "Listen to this song", deadline: "When finished working", urgent: false),
    Agenda(subject: "Check out this holiday destination", deadline: "At the weekend", urgent: false),
    Agenda(subject: "Download this podcast", deadline: "1-4 days", urgent: false),
    Agenda(subject: "Update notes", deadline: "When at home", urgent: true)
]

【问题讨论】:

验证紧急标签是否正确连接。 @EricD.哎呀!这就是问题所在。把它作为答案,我会接受的。 【参考方案1】:

由于我在这段代码中没有看到任何强制解包的选项,所以这个问题不是来自这个常见问题。

不过,这是一个强制解包的 nil 问题,所以...它可能来自一个隐式解包的可选,例如 IBOutlet。

如果 InterfaceBuilder 和 IBOutlet 之间的连接丢失,则该对象将为 nil,并且在尝试访问对象属性时应用程序将崩溃。

解决方案是在 InterfaceBuilder 中重新创建指向 IBOutlet/对象的链接,在您的情况下为 urgentLabel

【讨论】:

以上是关于致命错误:在展开可选值 (lldb) 时意外发现 nil的主要内容,如果未能解决你的问题,请参考以下文章

致命错误:在展开可选值 (lldb) 时意外发现 nil

AVCaptureSession 运行时崩溃。致命错误:在展开可选值 (lldb) 时意外发现 nil

命中致命错误:在展开可选值 (lldb) 时意外发现 nil

如何修复:“致命错误:在展开可选值 (lldb) 时意外发现 nil”

swift:致命错误:在展开可选值(lldb)时意外发现 nil,线程 1

致命错误:在展开可选值时意外发现 nil - 为啥?