我收到错误
未连接Internet时致命错误:在解包可选值时意外发现nil
在此行上。
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()
请帮助任何帮助都会得到帮助
答案 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...