我转换一个JSON到字典和应用程序从词典(SWIFT)
title = json?.objectForKey("Titel_Live") as! String
得到了一些字符串,但有些时候程序会崩溃获取字符串时坠毁。我无法重现这个问题,只能从崩溃报告中获取信息。
有人可以帮助我,说出原因吗?由于
我转换一个JSON到字典和应用程序从词典(SWIFT)
title = json?.objectForKey("Titel_Live") as! String
得到了一些字符串,但有些时候程序会崩溃获取字符串时坠毁。我无法重现这个问题,只能从崩溃报告中获取信息。
有人可以帮助我,说出原因吗?由于
title = json?.objectForKey(“Titel_live”) as! String
这行的,你正在做力展开(不要强行使用投地!)代码是起因手段如果与主要Titel_live
目标点找不到那么应该崩溃,更好地与可选的链接去或使用gaurd但肯定你的简化版,Json
包含与关键Titel_live
任何物体(可能拼写错误或对象数组验证一次)。
//better go like this check if exist or not.
if let t = json?.objectForKey(“Titel_live”) {
title = t
}
你不应该强制铸造字符串。
您可以尝试: -
title = json?.objectForKey("Title_Live") as? String
(如果标题是可选的变量) 如果标题是不可选的,然后使用:
title = (json?.objectForKey("Title_Live") as? String ?? "")
因为objectForKey将返回nil,如果没有值与该键相关联,并强制将字符串转换为字符串失败并导致崩溃。
不要强制施放。解析JSON时绝对不应该使用'!'。 –
我认为你的回答没有'key == Titel_Live' – iSashok
'的数据'!因为!'强制解包更好去选择链接。 – Buntylm