简体   繁体   中英

App crashed when getting string from Dictionary (swift)

I converted a JSON to Dictionary and got some String by

title = json?.objectForKey("Titel_Live") as! String

But some times app will be crashed. I cannot reproduce this problem, just get information from crash reports.

Could someone help me and tell why? Thanks

Error at line 163 在此处输入图片说明

Crash reports 崩溃报告

title = json?.objectForKey(“Titel_live”) as! String

This line of code where you are doing force unwrapped (Don't force the cast using !) is the cause means if object with key Titel_live dot not find then should be crashed, better go with optional chaining or use gaurd but yes your Json does't contain any object with key Titel_live (may be spelling mistake or object is array so validate once).

//better go like this check if exist or not.
if let t =  json?.objectForKey(“Titel_live”) {
title = t
}

You should not force the casting to String.

You can try :-

title = json?.objectForKey("Title_Live") as? String title = json?.objectForKey("Title_Live") as? String (if title is optional variable) if title is not optional then use:

title = (json?.objectForKey("Title_Live") as? String ?? "")

Because objectForKey will return nil if no value is associated with that key and force casting nil to String fails and causes crash.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM