JSON 致命错误:在展开可选值 (llbd) 时意外发现 nil

Posted

技术标签:

【中文标题】JSON 致命错误:在展开可选值 (llbd) 时意外发现 nil【英文标题】:JSON fatal error: unexpectedly found nil while unwrapping an Optional value (llbd) 【发布时间】:2016-01-15 06:47:07 【问题描述】:

当用户尝试登录时我遇到了这个问题

let success:NSInteger = jsonData!.valueForKey("success") as! NSInteger

致命错误:在展开可选值时意外发现 nil (llbd)

我不知道如何打开这个东西,我已经被困了好几个星期了 :(,任何帮助将不胜感激

【问题讨论】:

为什么不使用 if let 或 gaurd 语句来解开可选值? @AjayKumar 非常感谢您的回复,我是 ios 和 Swift 开发的新手,您能帮我解决这个问题吗? 如果您可以发布更多代码,那将很容易提供帮助,您的 jsonData 是什么 @AjayKumar let jsonData = try NSJSONSerialization.JSONObjectWithData(urlData!, options: .MutableContainers) as? NSDictionary 有帮助吗? 请在描述中添加您的相关代码,而不是在 cmets 上 【参考方案1】:

您需要检查jsonData!.valueForKey("success") 的值。是零。 Nil 无法转换为 Int。或者你可以这样做:

let success = jsonData!.valueForKey("success") as? NSInteger

Xcode lldb 可能对 pod 命令有一些问题。我通过在我的代码中写入“print(...)”来调试 var 的值。 祝你好运!

【讨论】:

非常感谢您的帮助。看来问题出在这句话之前,我按照你的建议做了,但一直抛出同样的错误。 顺便说一句,这是我的项目指南link jsonData 的值是否为零? 您必须始终检查 var 类型的值。您不能将 nil 转换为任何其他无可选 var。例如:let jsonData:NSDictionary = try NSJSONSerialization.JSONObjectWithData(urlData!, options:NSJSONReadingOptions.MutableContainers ) as! NSDictionary。如果 urlData 是 nil 。 urlData! 会抛出错误。符号! 表示urlData 的值不能为nil

以上是关于JSON 致命错误:在展开可选值 (llbd) 时意外发现 nil的主要内容,如果未能解决你的问题,请参考以下文章

Swift 中的可选类型错误:致命错误:在展开可选值时意外发现 nil

Swift 错误致命错误:在展开可选值时意外发现 nil

致命错误:在展开可选值时意外发现 nil - 为啥?

SWIFT 致命错误:在展开可选值 (lldb) 时意外发现 nil

为啥我收到错误:致命错误:在展开可选值时意外发现 nil?

@IBInspectable 致命错误:在展开可选值时意外发现 nil