由于该应用程序崩溃,字典得到 nil 值。在展开可选值时意外发现 nil

Posted

技术标签:

【中文标题】由于该应用程序崩溃,字典得到 nil 值。在展开可选值时意外发现 nil【英文标题】:Dictionary getting nil value due that app is crashing. Unexpectedly found nil while unwrapping an optional value 【发布时间】:2018-03-19 07:51:14 【问题描述】:

我有一个名为 messageDict 的属性,有时由于该应用程序崩溃,它会得到 nil 值。有人可以建议我如何正确处理它。

 var messageDict : [String : NSArray]?

if let messageDict = messageDict 
    let messageArray = messageDict[outBoxId]! as! [MCOIMAPMessage] // crash indicates here

如果数据可用,我将存储以下数据。有时它会为零

Message-ID: CABQG1ZJT0a7=NExme6VWA6iRpe6Du5LViuA9kZf-QbqOyX1RfQ@mail.gmail.com

References: [dca79b0a-ea55-a4f6-aef3-9097559148f5@peoplelogic.in,CABQG1ZKpat9nGSOjs-Q341bmn0vkiVH+CdFpu2JgkC92KO_K=Q@mail.gmail.com]

In-Reply-To: [CABQG1ZKpat9nGSOjs-Q341bmn0vkiVH+CdFpu2JgkC92KO_K=Q@mail.gmail.com]

【问题讨论】:

显示你的 JSON。 @SalmanGhumsani 好的。我正在编辑我的问题检查它 【参考方案1】:

不要强行拆包,先试试看有没有东西

if let messageDict = messageDict, let messageArray = messageDict[outBoxId] as? [MCOIMAPMessage] 

【讨论】:

【参考方案2】:

用警卫打开包装/如果安全的话。

var messageDict : [String : NSArray]?

guard let message = messageDict else 
    return

guard let messageArray = message[outBoxId] as? [MCOIMAPMessage] else 
    return

【讨论】:

以上是关于由于该应用程序崩溃,字典得到 nil 值。在展开可选值时意外发现 nil的主要内容,如果未能解决你的问题,请参考以下文章

Nil 同时展开一个实际具有值的可选

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

在展开可选值 uint32 swift 时意外发现 nil

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

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

崩溃:致命错误:在展开可选值时意外发现 nil