-1

有代码:

var err: NSError
var jsonDict = NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.MutableContainers, error: &err) as Array<NSDictionary>

如果数据有 JSON,它就完美了。但是,如果还有其他东西(不是 JSON 数组),它只会出现致命错误,并且 iOS 模拟器会以 EXC_BAD_INSTRUCTION 关闭。所以没有电话err。以前怎么查data?或者抓住错误。

4

2 回答 2

1

(抱歉,我赶时间,暂无描述。)

    var err: NSError?
    var jsonDict: AnyObject!
    var data: AnyObject = "{ }".dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: false)
    if let d = data as? NSData {
        jsonDict = NSJSONSerialization.JSONObjectWithData(d, options: NSJSONReadingOptions.MutableContainers, error: &err)
        if let dict = jsonDict as? NSDictionary {
            // Do something with `dict`
            println(dict)
        }
    }
于 2014-07-13T18:42:31.207 回答
0

这可能是因为 JSONObjectWithData 被声明为返回 id,但实际上它返回 NSDictionary*、NSArray* 或 nil - 在 Swift 中,将 nil 分配给 id 类型的变量会因设计而崩溃。你需要给 jsonDict 一个类型,可能是一个可选的 NSMutableDictionary* 或 NSMutableArray*。

于 2014-07-13T18:38:02.803 回答