即使我有一个do-try-catch块和一个if-optional块,nil值仍然会结束我的线程。这是我的代码:

do {
        if let jsonData = try NSJSONSerialization.JSONObjectWithData(data!, options:NSJSONReadingOptions.MutableContainers ) as? NSDictionary //error is on this line
            // use jsonData
        {
            return jsonData
        } else {
            if let _ = try NSJSONSerialization.JSONObjectWithData(data!, options:NSJSONReadingOptions.MutableContainers) as? NSDictionary {
                print("5")
            }
        }
    } catch {
        print("3")
        // report error
    }

此方法返回一个NSDictionary?,这也是可选的。

最佳答案

您还应检查数据中是否有零,而不是强制展开数据,例如:

do {
    if let data = data {
        if let jsonData = try NSJSONSerialization.JSONObjectWithData(data, ...

08-05 23:14
查看更多