没有互联网的崩溃

时间:2015-10-05 06:21:45

标签: ios swift swift2

我收到错误

  

致命错误:在解包可选值时意外发现nil

未连接Internet时

在此行上。

let jsonData = try NSJSONSerialization.JSONObjectWithData(data!, options: .MutableContainers) as! NSDictionary            // Line 


                self.dict = jsonData;

                self.array1 = (self.dict.objectForKey("results") as? NSMutableArray)!

                dispatch_async(dispatch_get_main_queue()) {
                    self.table.reloadData()
                }


            } catch {

                print(error)
            }
        })
        task1.resume()

请帮助任何帮助都会得到帮助

1 个答案:

答案 0 :(得分:4)

这种情况发生了,因为你强行打开data,这总是一个坏主意,因为你不知道它是否nil

要解决此问题,在尝试串行JSON之前,需要检查数据是否为nil:

// Checking if data is nil, and unwraping it
if let unwrappedData = data {
    let jsonData = try NSJSONSerialization.JSONObjectWithData(unwrappedData, options: .MutableContainers) as! NSDictionary 
    // handle json here
}

或其他方式:

if data == nil {
    return 
}
// else, data is not nil
let jsonData = try NSJSONSerialization...