致命错误:在展开可选值 (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的主要内容,如果未能解决你的问题,请参考以下文章
AVCaptureSession 运行时崩溃。致命错误:在展开可选值 (lldb) 时意外发现 nil
命中致命错误:在展开可选值 (lldb) 时意外发现 nil
如何修复:“致命错误:在展开可选值 (lldb) 时意外发现 nil”