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 是什么 @AjayKumarlet 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 的值。 祝你好运!
【讨论】:
非常感谢您的帮助。看来问题出在这句话之前,我按照你的建议做了,但一直抛出同样的错误。 顺便说一句,这是我的项目指南linkjsonData
的值是否为零?
您必须始终检查 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