从Dictionary(swift)获取字符串时应用程序崩溃

时间:2016-07-28 13:20:42

标签: ios json swift

我将JSON转换为Dictionary并通过

获得了一些String

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

但有时应用程序会崩溃。我无法重现此问题,只是从崩溃报告中获取信息。

有人可以帮助我并说明原因吗?感谢

第163行出错 enter image description here

崩溃报告 Crash reports

2 个答案:

答案 0 :(得分:3)

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
}

答案 1 :(得分:1)

您不应强制转换为String。

您可以尝试: -

title = json?.objectForKey("Title_Live") as? String(如果title是可选变量) 如果title不是可选的,那么使用:

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

因为 objectForKey 将返回nil,如果没有值与该键相关联,则强制将nil转换为String失败并导致崩溃。

相关问题