即使我有一个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, ...