即使我在该块中有一个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?
,也是可选的。
答案 0 :(得分:4)
您还应该检查数据中的nil而不是强制解包它,例如:
do {
if let data = data {
if let jsonData = try NSJSONSerialization.JSONObjectWithData(data, ...