user9364391
user9364391

Reputation:

Dictionary getting nil value due that app is crashing. Unexpectedly found nil while unwrapping an optional value

I've a property named as messageDict sometimes it will get nil value due to that app is crashing. can someone suggest me how to properly handle it.

 var messageDict : [String : NSArray]?

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

If the data is availabe i will store below data. sometimes it will be nil

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

References: [[email protected],CABQG1ZKpat9nGSOjs-Q341bmn0vkiVH+CdFpu2JgkC92KO_K=Q@mail.gmail.com]

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

Upvotes: 0

Views: 159

Answers (2)

Lumialxk
Lumialxk

Reputation: 6369

Unwrap with guard/if will be safe.

var messageDict : [String : NSArray]?

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

Upvotes: 1

Lu_
Lu_

Reputation: 2685

Don't force unwrap it, try to check if there is something first

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

Upvotes: 5

Related Questions