Bla*_*ard 1 cocoa nsjsonserialization swift
我试图构建一个基于文档的Cocoa应用程序,当我尝试解析readFromData: ofType: error:方法中的JSON时,我收到一个错误:fatal error: unexpectedly found nil while unwrapping an Optional value.导致错误的实际行如下:
override func readFromData(data: NSData?, ofType typeName: String?, error outError: NSErrorPointer) -> Bool {
var error: NSErrorPointer!
var loadedDictionary = NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.AllowFragments, error: error) as? NSDictionary // this causes an error
return true
}
Run Code Online (Sandbox Code Playgroud)
看起来该NSJSONSerialization.JSONObjectWithData()方法导致了错误,但为什么会发出错误呢?
我改变了options:说法要么nil或者0,也改变error:参数nil,但没有解决问题.
我也确保data不是nil.
那我错过了什么?我认为JSON方法试图在其中强行展开,但我怎么知道呢?我怎样才能逃脱致命错误并让我的应用程序正常运行?
我在Yosemite beta3上使用Xcode6-beta 3.
最有可能的问题是你的数据实际上不是JSON,因此反序列化将返回nil,或者数据是一个数组,将它转换为字典显然会崩溃.
你似乎不了解一些基础知识.您认为AllowFragments将实现什么目标?你为什么把错误改为零?你明白错误变量是什么吗?它可以告诉你JSON解析器发现了什么错误.通过将变量设置为nil,可以防止它帮助您.