字典因应用程序崩溃而获得零值。在展开可选值时意外地发现了nil

时间:2018-03-19 07:51:15

标签: ios swift xcode swift3 swift4

我有一个名为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]

2 个答案:

答案 0 :(得分:5)

不要强行打开它,试着先检查是否有东西

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

答案 1 :(得分:1)

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

var messageDict : [String : NSArray]?

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